所以我想从文件中读取并将其中的每一行放入列表中。
假设我有一个名为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()]
对于什么是错误而言有点困惑。
答案 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文件。