我有一个空格分隔的文本文件,我想打开它并将一些数据复制到列表中(Python2.7)。这是数据文件的片段:
0.000000 11.00 737.09 1.00 1116.00
0.001000 14.00 669.29 10.00 613.70
0.002000 15.00 962.27 2.00 623.50
0.003000 7.00 880.86 7.00 800.71
0.004000 9.00 634.67 3.00 1045.00
0.005000 12.00 614.67 3.00 913.33
0.006000 12.00 782.58 6.00 841.00
0.007000 13.00 860.08 6.00 354.00
0.008000 14.00 541.07 4.00 665.25
0.009000 14.00 763.00 6.00 1063.00
0.010000 9.00 790.33 6.00 857.83
0.011000 6.00 899.83 4.00 1070.75
0.012000 16.00 710.88 10.00 809.90
0.013000 12.00 863.50 7.00 923.14
0.014000 9.00 591.67 6.00 633.17
0.015000 12.00 740.58 6.00 837.00
0.016000 10.00 727.60 7.00 758.00
0.017000 12.00 838.75 4.00 638.75
0.018000 9.00 991.33 7.00 731.57
0.019000 12.00 680.75 5.00 1079.40
0.020000 15.00 843.20 3.00 546.00
0.021000 11.00 795.18 5.00 1317.20
0.022000 9.00 943.33 5.00 911.00
0.023000 13.00 711.23 3.00 981.67
0.024000 11.00 922.73 5.00 1111.00
0.025000 1112.00 683.58 6.00 542.83
0.026000 15.00 1053.80 5.00 1144.40
下面是我尝试过的代码,它不起作用。我想要两份名单,第二和第四栏各一份。
listb = []
listd = []
with open('data_file.txt', 'r') as file:
reader = csv.reader(file,delimiter=' ')
for a,b,c,d,e in reader:
listb.append(int(b))
listd.append(int(d))
我做错什么了?
另一种选择是利用内置的
str.split()
:问题是字段(列)之间有多个空格。
CSV代表逗号分隔的值。想象一下你用逗号代替空格。文件中的第1行看起来像:
因此,CSV阅读器在该行中看到5个以上的字段(列)。
你有两个选择:
以下内容:
p.S:一旦这一部分开始工作,在“11.00”等不是真正整数的字符串上调用int()就会遇到问题。 因此,我建议使用如下方法:
如果您只想捕获
integers
,而不是floats
,则可以使用此选项。相关问题 更多 >
编程相关推荐