我正在尝试打开一个文件并创建一个列表,其中每行都从文件中读取。
i=0
List=[""]
for Line in inFile:
List[i]=Line.split(",")
i+=1
print List
但是这个示例代码给出了一个错误,因为i+=1
说index is out of range
。
这是我的问题?如何编写代码以便使用InFile中的每个新行增加列表?
答案 0 :(得分:71)
比这更容易:
List = open("filename.txt").readlines()
这将返回文件中每行的列表。
答案 1 :(得分:38)
我是这样做的
lines_list = open('file.txt').read().splitlines()
每一行都带有行尾字符(\ n \ r);这样就可以删除字符。
答案 2 :(得分:9)
my_list = [line.split(',') for line in open("filename.txt")]
答案 3 :(得分:8)
请阅读PEP8。你离python惯例很远。
如果你想要用逗号分割每行的列表,我会这样做:
l = []
for line in in_file:
l.append(line.split(','))
您将在每条记录上获得换行符。如果您不想要:
l = []
for line in in_file:
l.append(line.rstrip().split(','))
答案 4 :(得分:1)
文件几乎一系列行。您可以在 for 循环中轻松使用它。
myFile= open( "SomeFile.txt", "r" )
for x in myFile:
print x
myFile.close()
或者,如果您想要一个实际的行列表,只需从文件中创建一个列表。
myFile= open( "SomeFile.txt", "r" )
myLines = list( myFile )
myFile.close()
print len(myLines), myLines
您无法someList[i]
将新项目放在列表的末尾。您必须someList.append(i)
。
此外,从不使用大写字母开始一个简单的变量名。 List
会让熟悉Python的人感到困惑。
此外,从不使用内置名称作为变量。 list
是一种现有的数据类型,并且将其用作变量会让知道Python的人感到困惑。
答案 5 :(得分:1)
f.readlines()返回一个列表,其中包含每行作为列表中的项目
如果您希望拆分每一行(“,”),您可以使用列表推导
[ list.split(",") for line in file ]
答案 6 :(得分:0)
假设您还想在每行的开头和结尾处去掉空格,您可以将字符串条带函数映射到readlines返回的列表:
map(str.strip, open('filename').readlines())
答案 7 :(得分:-8)
我不确定Python,但大多数语言都有数组的推/附加函数。