繁体   English   中英

仅使用 csv.DictReader 打开文件时出现 TypeError?

[英]TypeError upon merely opening a file with csv.DictReader?

我刚刚通过表单上传了这个 CSV 文件,并将其发布到我的 Python CGI 脚本中。 上传似乎已成功完成。 文件夹的权限是 777,文件的权限是 755。

>>> import csv
>>> csvHandle = open('files/TestData.csv', "rb")
>>> csvRawRecordDicts = csv.DictReader(csvHandle)

Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: __init__() takes at least 3 arguments (2 given)

这些值如下:

csvRawRecordDicts undefined, 
csv = <module 'csv' from '/usr/lib/python2.3/csv.pyc'>, 
csv.DictReader = <class csv.DictReader>, 
csvHandle = <open file 'files/TestData.csv', mode 'rb'>

该代码在我使用 Python 2.5 的本地计算机上运行良好。 错误发生在 2.3。

调试这样的东西的思考过程是什么? 我从哪里开始寻找?

您可以做以下几件事:

  • 阅读相关文档并看到DictReader至少需要两个参数,而您正在传递一个
  • 尝试做>>> help(csv.DictReader)并得出相同的结论。

由于阅读文档可能会解释第二个参数应该是fieldnames (我认为列表就足够了),重要的是此信息已在错误消息中传达!

Silent Ghost 所说的所有内容,以及:

重点的变化:在我看来,最重要的一点是仔细阅读错误消息。 在这种情况下,它简单明了地告诉您,您需要提供另一个参数。 检查帮助(或您正在运行的 Python 版本的文档)如下...

另一点:确保您了解您的代码在做什么。 csv.DictReader() 不打开文件。 文件系统权限不相关——您已经打开文件并将句柄传递给 csv.DictReader()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM