创建包含文件的每一行的列表

时间:2008-11-29 21:55:53

标签: python

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

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

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

8 个答案:

答案 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,但大多数语言都有数组的推/附加函数。