循环 sys.args
Loop over sys.args
尝试循环 sys.args
时出现以下错误:
Traceback (most recent call last):
File "./autoCrosRef.py", line 59, in <module>
cleanFile(inputArgs[i])
TypeError: list indices must be integers, not str
这就是我调用程序的方式:
./autoCrosRef.py file.txt
这是我用来尝试循环的代码:
import sys
# ------
# MAIN
# ------
inputArgs = sys.argv
print len(inputArgs)
for i in inputArgs[1:]:
cleanFile(inputArgs[i])
我的打印命令显示我在 cmd 中传递了 2 个参数,但它一直出错,是我调用错误还是我的循环错误?
i
您的 inputArgs 数组中有一个项目 - 不是索引。你可以做
for i in range(1, len(inputArgs)):
# i is a number, from 1 to len(inputArgs)-1
cleanFile(inputArgs[i])
或(此为首选)
for i in inputArgs[1:]:
# i is an item from inputArgs. If inputArgs=['foo', 'bar', 'baz']
# then i is first 'bar' then 'baz'.
cleanFile(i)
尝试循环 sys.args
时出现以下错误:
Traceback (most recent call last):
File "./autoCrosRef.py", line 59, in <module>
cleanFile(inputArgs[i])
TypeError: list indices must be integers, not str
这就是我调用程序的方式:
./autoCrosRef.py file.txt
这是我用来尝试循环的代码:
import sys
# ------
# MAIN
# ------
inputArgs = sys.argv
print len(inputArgs)
for i in inputArgs[1:]:
cleanFile(inputArgs[i])
我的打印命令显示我在 cmd 中传递了 2 个参数,但它一直出错,是我调用错误还是我的循环错误?
i
您的 inputArgs 数组中有一个项目 - 不是索引。你可以做
for i in range(1, len(inputArgs)):
# i is a number, from 1 to len(inputArgs)-1
cleanFile(inputArgs[i])
或(此为首选)
for i in inputArgs[1:]:
# i is an item from inputArgs. If inputArgs=['foo', 'bar', 'baz']
# then i is first 'bar' then 'baz'.
cleanFile(i)