关于python:创建一个包含文件每行的列表

Create a List that contain each Line of a File

我正试图打开一个文件并创建一个列表,其中的每一行都是从文件中读取的。

1
2
3
4
5
6
   i=0
   List=[""]
   for Line in inFile:
      List[i]=Line.split(",")
      i+=1
   print List

但是这个示例代码给出了一个错误,因为i+=1index is out of range。我的问题是什么?如何编写代码,以便在中缀的每一行中增加我的列表?


比这容易得多:

1
List = open("filename.txt").readlines()

这将返回文件中每行的列表。


我是这样做的

1
lines_list = open('file.txt').read().splitlines()

每行都有其行尾字符(
);这样就可以删除字符。


1
my_list = [line.split(',') for line in open("filename.txt")]


请阅读PEP8。您与Python约定相差甚远。

如果您想要用逗号分隔的每行列表,我会这样做:

1
2
3
l = []
for line in in_file:
    l.append(line.split(','))

每一张唱片都会有一个新行。如果你不想要:

1
2
3
l = []
for line in in_file:
    l.append(line.rstrip().split(','))


f.readlines()返回一个列表,该列表将每一行作为列表中的一个项包含

如果希望每个行被拆分(","),可以使用列表理解

1
[ list.split(",") for line in file ]

文件几乎是一列行。你可以在for循环中使用它。

1
2
3
4
myFile= open("SomeFile.txt","r" )
for x in myFile:
    print x
myFile.close()

或者,如果需要实际的行列表,只需从文件创建一个列表。

1
2
3
4
myFile= open("SomeFile.txt","r" )
myLines = list( myFile )
myFile.close()
print len(myLines), myLines

你不能用someList[i]把一个新项目放在列表的末尾。你必须这样做。

此外,不要以大写字母开头简单变量名。List混淆了认识python的人。

此外,不要将内置名称用作变量。List是一种现有的数据类型,将其作为变量使用会使了解Python的人感到困惑。


假设您还希望在每行的开始和结束处去除空白,则可以将string strip函数映射到readlines返回的列表:

1
map(str.strip, open('filename').readlines())

我对python不太确定,但大多数语言都有数组的push/append函数。