Codice:
file('pinax/media/a.jpg', 'wb')
openinvece di file, che è stato deprecato in Python 2 e rimosso in Python 3. Vedere stackoverflow.com/questions/112970/...
Codice:
file('pinax/media/a.jpg', 'wb')
openinvece di file, che è stato deprecato in Python 2 e rimosso in Python 3. Vedere stackoverflow.com/questions/112970/...
Risposte:
Modalità file , scrittura e binario. Dato che stai scrivendo un file .jpg, sembra a posto.
Ma se dovessi leggere quel file jpg devi usare 'rb'
Ulteriori informazioni
Su Windows, "b" aggiunto alla modalità apre il file in modalità binaria, quindi ci sono anche modalità come "rb", "wb" e "r + b". Python su Windows fa una distinzione tra file di testo e file binari; i caratteri di fine riga nei file di testo vengono leggermente modificati automaticamente quando i dati vengono letti o scritti. Questa modifica dietro le quinte ai dati del file va bene per i file di testo ASCII, ma corromperà i dati binari come quelli nei file JPEG o EXE.
fd.write("foo\n")scrive effettivamente su disco foo\r\n(notare il \r).
Il wbindica che il file è aperto per la scrittura in modalità binaria.
Quando si scrive in modalità binaria, Python non apporta modifiche ai dati mentre vengono scritti nel file. In modalità testo (quando bè escluso come in just wo quando si specifica la modalità testo con wt), tuttavia, Python codificherà il testo in base alla codifica di testo predefinita. Inoltre, Python convertirà le terminazioni di riga ( \n) in qualunque sia la fine di riga specifica della piattaforma, il che corromperà un file binario come un file exeo png.
La modalità testo dovrebbe quindi essere utilizzata quando si scrivono file di testo (sia che si utilizzi testo normale o un formato basato su testo come CSV), mentre la modalità binaria deve essere utilizzata quando si scrivono file non di testo come immagini.
Riferimenti:
https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files https://docs.python.org/3/library/functions.html#open
wbopzione. Utilizzando winvece l' opzione, sono stato in grado di farlo funzionare correttamente.
bmodalità aveva effetto solo su Windows. Ora è stato rimosso dalla documentazione e la modalità binaria "dovrebbe essere utilizzata per tutti i file che non contengono testo".
Questa è la modalità con cui stai aprendo il file. "wb" significa che stai scrivendo nel file (w) e che stai scrivendo in modalità binaria (b).
Controlla la documentazione per ulteriori informazioni: cliccabile
openposto difile.fileera deprecato in Python 2 (impossibile trovare quale versione) ed è stato rimosso in py3k. (grazie Scott) Vedi questa domanda per maggiori informazioni.