Ich bin ein Anfänger, der eine Datei liest, die nach Django hochgeladen wurde und Probleme beim Lesen von() und Splitlinien() mit der Datei hat.Django liest die hochgeladene Datei und iteriert über die Bytes
Klartextdatei sieht so aus.
04-05-2011 - 04-05-2012
Something happened between these dates
12-05-2015 - 14-03-2016
We need to make some more money in this period.
ich es in einer Django Ansicht wie diese bin Verarbeitung.
if file_form.is_valid():
file = request.FILES['filename'].read()
print(type(file))
for x in file:
print(x, type(x))
Diese Drucke Typ 'Bytes' und ein langer Strom von (Ascii) 'integer' Typen wie dieser ...
<class 'bytes'>
48 <class 'int'>
52 <class 'int'>
45 <class 'int'>
48 <class 'int'>
53 <class 'int'>
...
Wenn ich hinzufügen .splitlines() nach dem Lesen der Datei ..
.file = request.FILES['filename'].read().splitlines()
print(type(file))
for x in file:
print(x, type(x))
dann bekomme ich den Typ 'Liste' und Zeilen der Typen statt 'Bytes' ...
<class 'list'>
b'04-05-2011 - 04-05-2012' <class 'bytes'>
b'Something happened between these dates' <class 'bytes'>
b'12-05-2015 - 14-03-2016' <class 'bytes'>
b'We need to make some more money in this period.' <class 'bytes'>
Meine Frage ist, warum gibt der Ausdruck von .read() ascii Ganzzahlen während des Druckens zurück. Splitlines() gibt eine Liste von Bytes zurück?
ich habe, dass der Druck .lesen() vorgestellt ohne .splitlines() würde noch Bytes zurück, aber mit dem Newline '\ n' in dem Byte-String enthält ...
b'04-05-2011 - 04-05-2012\r\n' <class 'bytes'>
...