我剛剛通過表單上傳了這個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