我刚刚通过表单上传了这个CSV文件,并将其发布到我的Python CGI脚本中。上传似乎已成功完成。该文件夹的权限是777,该文件是755TypeError仅仅用csv.DictReader打开一个文件?
>>> 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。
调试类似这样的思考过程是什么?我从哪里开始寻找?
CSV文件是下面的文本;你应该使用“r”的模式。 – 2010-01-19 20:02:55
@Ignacio:** UTTERLY WRONG ** csv.reader和csv.writer(Python 2.3到2.6)的文档说“”“如果csvfile是一个文件对象,它必须在平台上用'b'标志打开有所作为。“”“。如果csvfile是一个文件对象,它必须在平台上用'b'标志打开,这对于便携性来说,无条件地用'b'打开。此外,OP在* x平台上,'b'标志被忽略。 – 2010-01-19 21:38:45
@约翰:够公平的。 – 2010-01-19 21:41:55