Python读取文件。每行列出一个列表

时间:2012-11-06 03:46:11

标签: python file list python-2.7

所以我想从文件中读取并将其中的每一行放入列表中。

假设我有一个名为MyFile.txt或MyFile.csv的文件,其中包含以下三行数字/小数:

49.55,2,77.09,18,1,2.34,32.11
33,11.22,33.21,56,76.55
8,9,44.7,90.99,12.21,1.01

我希望程序打开文件然后读取第一行并将其放入列表〜说L1list。我然后想要它制作L2list&第2行和第2行的L3list 3。 一旦完成,我希望能够计算出列表的总数,平均值,最大值和最大值。 min等我使用sum(),len(),max(),min()等对这个部分很有信心。

它填补了我困住的列表。我得到错误的总数,长度等。 想想也许是它的全停或开始。但我需要小数点和思想列表需要角色分开。

到目前为止,我已尝试过:

filename = 'MyFile.txt' 
fin=open(filename,'r')
L1list = fin.readline()
L2list = fin.readline()
L3list = fin.readline()

此外:

L1list.append(fin.readline())

同时:

L1list = [i.strip().split() for i in fin.readlines()]

对于什么是错误而言有点困惑。

3 个答案:

答案 0 :(得分:5)

那你的代码出了什么问题? 你尝试过这样的事情:

L1list = [map(float, i.strip().split(',')) for i in fin.readlines()]

或者使用数据检查:

with open(filename,'r') as fin:
    values = [map(float, [x for x in line.strip().split(',') if x]) for line in fin] 

另外,您可以查看csv module

答案 1 :(得分:1)

我相信你需要这样的东西:

L1list = map(float, fin.readline().strip().split(","))

答案 2 :(得分:1)

>>> '49.55,2,77.09,18,1,2.34,32.11'.split(',')
['49.55', '2', '77.09', '18', '1', '2.34', '32.11']

请尝试print,看看发生了什么。

您可能希望将http://docs.python.org/2/library/csv.html用于更复杂的CSV文件。