Ho incontrato un problema strano quando lavoro con i file in python. Diciamo che ho un file di testo e un semplice pezzo di codice che legge il contenuto del file e quindi lo riscrive con contenuti inalterati.Python legge e scrive aggiungi x00 al file
File.txt
Si tratta di un file di test di codice
Python
f=open(File.txt,'r+')
data=f.read()
f.truncate(0)
f.write(data)
f.close()
Dopo aver eseguito il codice di cui sopra File.txt
sembra essere lo stesso. Tuttavia, quando l'ho aperto in un editor esadecimale mi ha sorpreso vedere molti dei byte \x00
(NULL) prima del contenuto effettivo del file di testo, che non era.
Qualcuno può spiegare per favore?
No, no, no. '.truncate' tronca il file. Questo è tutto; nessun byte null. Se il codice termina con 'f.truncate (0)', il file diventa zero. È il '.write' su un offset di file diverso da zero che fa sì che il sistema operativo riempia i * byte non scritti * con byte null (o semplicemente * presuma * che i byte non scritti siano nulli, dipende dal file system). – tzot