在sys.argv[](python)上迭代

在sys.argv[](python)上迭代,python,Python,我试图使用这个迭代代码从命令行参数中读取几个文件,但我得到一个类型错误:列表索引必须是整数或片,而不是str 有人能帮我修一下吗 代码: 类型错误:列表索引必须是整数或片,而不是str:这意味着您正在使用str作为列表索引。您在哪里访问列表索引?它位于sys.argv[x]。所以它抱怨x是str而不是int 这是因为当您在sys.argv[1::]中表示x时,x是列表的实际内容,在本例中是实际的文件名。所以你要么需要说: for x in sys.argv[1::] fileobj =

我试图使用这个迭代代码从命令行参数中读取几个文件,但我得到一个类型错误:列表索引必须是整数或片,而不是str

有人能帮我修一下吗

代码:

类型错误:列表索引必须是整数或片,而不是str:这意味着您正在使用str作为列表索引。您在哪里访问列表索引?它位于sys.argv[x]。所以它抱怨x是str而不是int

这是因为当您在sys.argv[1::]中表示x时,x是列表的实际内容,在本例中是实际的文件名。所以你要么需要说:

for x in sys.argv[1::]
    fileobj = open(x, 'r')

大多数人认为第一种方法更具可读性

for x in sys.argv[1::]
    fileobj = open(x, 'r')
for x in range(1, len(sys.argv))
    fileobj = open(sys.argv[x], 'r')