文件行到列表中

时间:2013-11-09 16:03:13

标签: python list dictionary

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

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'在一个新行中逐个打印所有符号。 认为它应该将整行打印为单个列表项。 为什么会这样?

1 个答案:

答案 0 :(得分:1)

删除for循环行中的[i]

# 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=0list是文件中的行列表。因此,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,因为它会为您自动关闭它们。