Code:
file('pinax/media/a.jpg', 'wb')
open stattdessen anstelle von file, was in Python 2 veraltet und in Python 3 entfernt wurde. Siehe stackoverflow.com/questions/112970/…
Code:
file('pinax/media/a.jpg', 'wb')
open stattdessen anstelle von file, was in Python 2 veraltet und in Python 3 entfernt wurde. Siehe stackoverflow.com/questions/112970/…
Antworten:
Dateimodus , Schreiben und Binär. Da Sie eine JPG-Datei schreiben, sieht sie gut aus.
Aber wenn Sie diese JPG-Datei lesen sollen, müssen Sie verwenden 'rb'
Mehr Info
Unter Windows öffnet 'b', das an den Modus angehängt ist, die Datei im Binärmodus, daher gibt es auch Modi wie 'rb', 'wb' und 'r + b'. Python unter Windows unterscheidet zwischen Text- und Binärdateien. Die Zeilenendezeichen in Textdateien werden beim Lesen oder Schreiben von Daten automatisch geringfügig geändert. Diese Änderung der Dateidaten hinter den Kulissen ist für ASCII-Textdateien in Ordnung, beschädigt jedoch Binärdaten wie JPEG- oder EXE-Dateien.
fd.write("foo\n")schreibt in Windows für eine im Textmodus geöffnete Datei tatsächlich auf die Festplatte foo\r\n(beachten Sie die \r).
Das wbzeigt an, dass die Datei zum Schreiben im Binärmodus geöffnet ist.
Beim Schreiben im Binärmodus nimmt Python keine Änderungen an Daten vor, während diese in die Datei geschrieben werden. Im Textmodus (wenn das bwie gerade ausgeschlossen ist woder wenn Sie den Textmodus mit angeben wt) codiert Python den Text jedoch basierend auf der Standardtextcodierung. Darüber hinaus konvertiert Python die Zeilenenden ( \n) in die plattformspezifischen Zeilenenden, wodurch eine Binärdatei wie ein exeoder beschädigt wirdpng Datei beschädigt wird.
Der Textmodus sollte daher beim Schreiben von Textdateien verwendet werden (ob im Klartext oder in einem textbasierten Format wie CSV), während der Binärmodus beim Schreiben von Nicht-Textdateien wie Bildern verwendet werden muss.
Verweise:
https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files https://docs.python.org/3/library/functions.html#open
wbOption geöffnet wurde, ist ein Fehler aufgetreten. Durch die Verwendung der wOption konnte ich dafür sorgen, dass sie ordnungsgemäß funktioniert.
bModus nur Auswirkungen auf Windows hatte. Das wurde jetzt aus der Dokumentation entfernt und der Binärmodus "sollte für alle Dateien verwendet werden, die keinen Text enthalten".
In diesem Modus öffnen Sie die Datei. "wb" bedeutet, dass Sie in die Datei (w) schreiben und im Binärmodus (b) schreiben.
Weitere Informationen finden Sie in der Dokumentation: clicky
openanstelle von zu verwendenfile.filewurde in Python 2 veraltet (konnte nicht finden, welche Version) und wurde in py3k entfernt. (danke Scott) Siehe diese Frage für weitere Informationen.