Kent Johnson schrieb: > [EMAIL PROTECTED] wrote: > >> import csv >> import MySQLdb >> import sys >> >> try: >> datei = sys.argv[1] >> except: >> print("Usage: insert_into_db <.csv-file>") >> >> # convert csv to list >> reader = csv.reader(open(datei, "rb"), delimiter = ";", quotechar = >> "", quoting = csv.QUOTE_NONE) >> </snip> >> >> 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 > occurring. > > 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 = > csv.QUOTE_NONE) Same result. Thanks nonetheless :) > Kent > - Paul _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor