[Tutor] csv.reader: bad argument type
tetsuo2k6 at web.de
tetsuo2k6 at web.de
Wed Jan 23 14:43:12 CET 2008
Kent Johnson schrieb:
> tetsuo2k6 at web.de wrote:
>> import csv
>> import MySQLdb
>> import sys
>> datei = sys.argv
>> print("Usage: insert_into_db <.csv-file>")
>> # convert csv to list
>> reader = csv.reader(open(datei, "rb"), delimiter = ";", quotechar =
>> "", quoting = csv.QUOTE_NONE)
>> After copying it to the server, it says:
>> server1:/usr/local/sbin# ./insert_dgf_customers.py /usr/local/sbin/my.csv
>> Traceback (most recent call last):
>> File "./insert_dgf_customers.py", line 27, in ?
>> reader = csv.reader(open(datei, "rb"), delimiter = ";", quotechar
>> = "", quoting = csv.QUOTE_NONE)
>> TypeError: bad argument type for built-in operation
>> The file my.csv is a test file and correctly formatted (it's the same
>> file that worked on the other machine).
> It doesn't seem to get as far as actually reading the file.
>> I thought the built-in operation meant here is open(), but without
>> putting csv.reader() around it everything works fine... And I guess
>> csv.reader is _not_ built-in, for it from the module - is that correct?
> csv.reader is not built-in, that is correct. But it is implemented in C
> so you won't get a good traceback into where the failure is actually
> What version of Python is on the two machines?
I guess that's it - my client has 2.5 while the server runs 2.4 ... I
don't think any differences are mentioned in the library reference for
csv but I'll have a second look.
> A couple of things to try, maybe some hints will come out:
> - print the value of datei just to make sure nothing funny there
Filename is alright - my.csv
> - split the open to a separate line to make sure it is the call to
> reader that is the problem:
> f = open(datei, "rb")
> reader = csv.reader(f, delimiter = ";", quotechar = "", quoting =
Same result. Thanks nonetheless :)
More information about the Tutor