【发布时间】:2012-03-26 17:28:51
【问题描述】:
我需要检查 csv 文件中的列标题,并且只需要此任务的标题值,而不需要下面的值(还)。现在我正在使用 DictReader 和 fieldnames 来获取列标题,主要是因为代码更清楚地知道使用这种方法发生了什么。是否有任何理由(性能或其他)只使用标准 csv 阅读器,在顶列中作为标题读取,然后关闭文件?
【问题讨论】:
我需要检查 csv 文件中的列标题,并且只需要此任务的标题值,而不需要下面的值(还)。现在我正在使用 DictReader 和 fieldnames 来获取列标题,主要是因为代码更清楚地知道使用这种方法发生了什么。是否有任何理由(性能或其他)只使用标准 csv 阅读器,在顶列中作为标题读取,然后关闭文件?
【问题讨论】:
我想 DictReader 的效率只会比 csv 阅读器略低(不过我从未见过基准测试)。 DictReader 提供的是更好的可读性。当您访问列时,任何阅读您的代码的人都可以看到发生了什么
reader = csv.DictReader(f.open)
for line_dict in reader:
line_dict['First Column']
line_dict['Second Column']
反对只是 csv 阅读器的数字索引。如果您正在处理包含许多列的文件,那么必须记住列名的索引可能会令人抓狂。我认为 DictReader 的可读性胜出。
【讨论】: