3

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

假设我有一个名为 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。然后我希望它为第 2 行和第 3 行制作 L2list 和 L3list。一旦完成,我希望能够计算出列表的总数、平均值、最大值和最小值等。我对这部分使用 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()]

有点卡住出了什么问题。

4

3 回答 3

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 模块

于 2012-11-06T03:49:56.700 回答
1

我相信你需要类似的东西:

L1list = map(float, fin.readline().strip().split(","))
于 2012-11-06T03:51:03.277 回答
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看看发生了什么。

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

于 2012-11-06T03:52:18.073 回答