python - csvreader.fieldnames 不被识别为 python 中的 csv 阅读器对象的属性

标签 python csv header

我正在尝试使用 CSV 模块在 Python 中提取 CSV 文件的 header 。

CSV 文件非常扁平,看起来像:

This, That, The Other

1, 2, 3

我正在做以下事情:

  1. 读入CSV文件并使读者成为对象
  2. 将读取器的迭代器推到下一行以强制它至少访问第一行一次(来自 csv 模块文档:“如果在创建对象时未作为参数传递,则此属性在第一次访问时初始化或从文件中读取第一条记录。")
  3. .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/

相关文章:

python - 如何获取多个模型中的最新条目 - django python

javascript - 具有多个动态选择框angularjs

PHP & C++ 获取用户 IP

python - 如何在 Gnome Shell 中设置应用程序标题?

python - UnicodeEncodeError 并将数据插入数据库

R read.csv 如何忽略回车?

python - 在未引用的字段错误中看到 CSV 换行符

c++ - header 中定义的 C++ 类方法是否始终内联?

c - 由于头文件,编译C项目导致符号重复

python - 值错误 : invalid literal for int() with base 10: '1000.00'