我正在尝试使用 CSV 模块在 Python 中提取 CSV 文件的 header 。
CSV 文件非常扁平,看起来像:
This, That, The Other
1, 2, 3
我正在做以下事情:
- 读入CSV文件并使读者成为对象
- 将读取器的迭代器推到下一行以强制它至少访问第一行一次(来自 csv 模块文档:“如果在创建对象时未作为参数传递,则此属性在第一次访问时初始化或从文件中读取第一条记录。")
- 将
.fieldnames
属性分配给一个变量并打印它
这里有一段代码来说明:
datafile = open(fname, "rb")
reader = csv.reader(datafile) #use csv module to parse in the header
reader.next() # read next line so header will be accessed
rfd_header = reader.fieldnames
print "header:\n"
print rfd_header
这会导致错误:
AttributeError: '_csv.reader' object has no attribute 'fieldnames'
这听起来像 .fieldnames
属性不存在,但在 Python 2.6.6 的文档中(我正在使用相同版本的 python)
如果能深入了解这个谜团,我将不胜感激。如果有另一种提取 header 的方法,那也太棒了!
谢谢。
最佳答案
如果你真的想使用 csv.reader 而不是 csv.DictReader,你需要做的就是替换
reader.next() # read next line so header will be accessed
rfd_header = reader.fieldnames
通过
rfd_header = reader.next()
关于python - csvreader.fieldnames 不被识别为 python 中的 csv 阅读器对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3945848/