0

所以我想创建一个包含文件每一行的列表

list = open(sys.argv[1]).readlines() #Input File
i=0
print list[i]
for x in list[i]:
    print x  #the problem is on this line
    i+=1

for 循环中的 'print x' 在新行中一个一个地打印所有符号。认为它应该将整行打印为单个列表项。为什么会这样?

4

1 回答 1

1

删除[i]for 循环中的行:

# Don't name a variable 'list' -- it overshadows the built-in
lst = open(sys.argv[1]).readlines()
i=0
print lst[i]
for x in lst:
    print x

您当前的代码正在迭代文件的第一行,而不是所有行。请记住,i=0andlist是文件中行的列表。因此,list[i]是第一项,list或者,即文件中的第一行。


此外,您当前的代码不会关闭文件。因此,最好在with这里使用:

with open(sys.argv[1]) as myfile:
    lst = myfile.readlines()
    i=0
    print lst[i]
    for x in lst:
        print x

我强烈建议您with每次打开文件时都使用它,因为它会自动为您关闭它们。

于 2013-11-09T16:05:37.693 回答