Cosa fa il troncamento di un file quando si apre un file con lopzione w + in python?


Migliore risposta

Chiedi: Cosa fa troncare un file quando si apre un file con lopzione w + in python?

Troncare un file a zero significa scartare tutto il suo contenuto: la dimensione del file diventa 0, quindi diventa vuoto (e i dati sono spariti), ma il file esiste ancora sul filesystem.

Su sistemi operativi UNIX e simili a UNIX (e in generale su POSIX sistemi operativi compatibili con ) cè la chiamata di sistema truncate(2) che può essere usata per scartare parte o tutto il contenuto di un file (verso la fine di un file).

Su tali sistemi, la open(2) chiamata di sistema può essere specificata un parametro flags che specifica il parametro O\_TRUNC flag che indica che il contenuto del file deve essere troncato a 0 quando viene aperto.

Allo stesso modo, la libreria I / O standard C la funzione fopen() può essere specificata una modalità di apertura w+ che indica che il file viene aperto per la scrittura e che dovrebbe essere creato se non lo fa t esiste, o che dovrebbe essere troncato a 0 se esiste già.

E poiché la funzione open() in Python funziona in modo simile a fopen() funzione in C, w+ significa troncare il contenuto del file a lunghezza zero prima di scrivere qualsiasi cosa.

Risposta

Il domanda necessita di ulteriori chiarimenti. Chi sta facendo il troncamento? Lo stesso processo Python che ha aperto il flusso o qualche altro processo? Il file Python sta scrivendo nel file mentre un altro thread / processo lo sta troncando? Loperazione di troncamento avviene in un ciclo o qualcosa del genere?

La risposta alla tua domanda dipende da cosa sta succedendo con il file quando si verificano queste operazioni di scrittura e troncamento …

Inoltre … protip: non guardare la documentazione di python2. Guarda la documentazione di python3. E usa python3 in generale

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *