# First thing is to get a set of your query strings.
queries = set(argv[1:])
# If using optparse or argparse, queries = set(something_else)
hlo = []
for i in range(len(sh.col_values(8))):
if sh.cell(i, 1).value in queries:
hlo.append(sh.cell(i, 8).value)
答案===结束质疑===
另外:OP使用xlrd ......这里有几个性能的提示。
这个简单的例子无关紧要,但是如果您要对单元格值进行很多基于坐标的访问,则可以使用Sheet.cell_value(rowx,colx)做更好的改变Sheet.cell(一行x,COLX).value的它建立在运行一个Cell对象的:
queries = set(argv[1:])
hlo = []
for i in range(len(sh.nrows)): # all columns have the same size
if sh.cell_value(i, 1) in queries:
hlo.append(sh.cell_value(i, 8))
,或者你可以用Sheet.col_values(COLX)方法一起使用列表理解:
hlo = [
v8
for v1, v8 in zip(sh.col_values(1), sh.col_values(8))
if v1 in queries
]
你想遍历'sys.argv [1:]',而不是'sys.argv';你不想包含'argv [0]',这是正在运行的脚本的名字。 – 2009-10-29 14:51:36