所以我想创建一个包含文件的每一行的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'在一个新行中逐个打印所有符号。 认为它应该将整行打印为单个列表项。 为什么会这样?
答案 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=0
和list
是文件中的行列表。因此,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
,因为它会为您自动关闭它们。