提取包含标题行的数据文件并将其读入命名元组的最佳方法是什么,以便可以通过标题名访问数据行?
我正在尝试这样的事情:
import csv
from collections import namedtuple
with open('data_file.txt', mode="r") as infile:
reader = csv.reader(infile)
Data = namedtuple("Data", ", ".join(i for i in reader[0]))
next(reader)
for row in reader:
data = Data(*row)
reader对象不可下标,因此上述代码抛出TypeError
。将文件头读入namedtuple的pythonic方法是什么?
用:
Data = namedtuple("Data", next(reader))
并省略以下行:
next(reader)
将其与基于martineau的以下注释的迭代版本相结合,该示例将成为适用于Python 2的示例
import csv
from collections import namedtuple
from itertools import imap
with open("data_file.txt", mode="rb") as infile:
reader = csv.reader(infile)
Data = namedtuple("Data", next(reader)) # get names from column headers
for data in imap(Data._make, reader):
print data.foo
# ...further processing of a line...
而对于Python 3
import csv
from collections import namedtuple
with open("data_file.txt", newline="") as infile:
reader = csv.reader(infile)
Data = namedtuple("Data", next(reader)) # get names from column headers
for data in map(Data._make, reader):
print(data.foo)
# ...further processing of a line...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句