Ich versuche, auf eine model.filefield
in Django zuzugreifen , um eine CSV- Datei in Python mit dem csv
Modul zu analysieren . Es funktioniert unter Windows, aber auf dem Mac gab es mir Folgendes:
Exception Type: Error
Exception Value: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?
Dies ist der Code:
myfile = customerbulk.objects.all()[0].fileup
mydata = csv.reader(myfile)
for email,mobile,name,civilid in mydata:
print email,mobile,name,civilid
customerbulk.objects.all()[0].fileup
Ding? Ist es ein Dateiname auf einem Modell?rU
(Sie hängt mit der Funktion open () zusammen und ist nicht csv-spezifisch.):In addition to the standard fopen() values mode may be 'U' or 'rU'. Python is usually built with universal newlines support; supplying 'U' opens the file as a text file, but lines may be terminated by any of the following: the Unix end-of-line convention '\n', the Macintosh convention '\r', or the Windows convention '\r\n'.
Docs.python.org/2/library/functions.html#opennewline=''
anstelle vonmode='U'
.Antworten:
Ich habe endlich die Lösung gefunden:
quelle
rU
steht:In a Python with universal newline support open() the mode parameter can also be "U", meaning "open for input as a text file with universal newline interpretation". Mode "rU" is also allowed, for symmetry with "rb".
newline
stattdessen die Standardeinstellung, mitnewline=None
dernewline=''
Ausnahme, dass auch die Zeilenumbrüche in übersetzt werden\n
. Ich bin mir nicht sicher, welches davon gleichbedeutend ist mitmode='U'