您可以这样使用csv 模块:
import csv
with open('test.csv', newline='') as csvfile:
rdr = csv.reader(csvfile, delimiter=' ')
for row in rdr:
# Remove or comment out the following line to keep each row element as a string:
row = [float(elem) for elem in row]
print(row)
打印:
[61979.521351, 1.0, 41.0, -91.0, 2050.0, 61979.521351, 2.0, -10.0, -8.0, 4.0, 61979.526329, 1.0, 42.0, -96.0, 2070.0]
[61979.526329, 2.0, -17.0, -6.0, 4.0, 61979.531307, 1.0, 44.0, -88.0, 2070.0, 61979.531307, 2.0, -12.0, -8.0, 3.0]
[61979.536285, 1.0, 44.0, -101.0, 2074.0, 61979.536285, 2.0, -13.0, -7.0, 8.0, 61979.541263, 1.0, 47.0, -99.0, 2050.0]
更新
如果要将所有数据作为行保留在列表中,其中行的每个元素都可以通过列名进行索引,那么:
import csv
column_names = list('ABCDEFGIHJKLMNO') # 'A', 'B', ... 'O'
data = []
with open('test.csv', newline='') as csvfile:
rdr = csv.DictReader(csvfile, fieldnames=column_names, delimiter=' ')
data = [{k: float(v) for k, v in row.items()} for row in rdr]
# Or: data = [row for row in rdr] # to keep everything as strings
print(data[2]['F'])
打印:
61979.536285
以上提供了pandas 的轻量级替代方案。