所以我想创建一个包含文件每一行的列表
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' 在新行中一个一个地打印所有符号。认为它应该将整行打印为单个列表项。为什么会这样?
所以我想创建一个包含文件每一行的列表
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' 在新行中一个一个地打印所有符号。认为它应该将整行打印为单个列表项。为什么会这样?
删除[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=0
andlist
是文件中行的列表。因此,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
每次打开文件时都使用它,因为它会自动为您关闭它们。