HOWTO · Python

Sovrascrivi un file in Python

Questo tutorial spiega come sovrascrivere un file in Python

Questo tutorial mostrerà vari metodi per sovrascrivere un file in Python. Esamineremo i metodi per scrivere nuovo testo eliminando il testo già salvato e come possiamo prima leggere i dati del file, applicare alcune azioni e modifiche su di esso, quindi sovrascriverlo sui vecchi dati.

Sovrascrivi un file in Python usando la funzione open()

La funzione open(file, mode) accetta file (un oggetto simile a un percorso) come input e restituisce un oggetto file come output. L’input file può essere un oggetto stringa o byte e contiene il percorso del file. La mode è la modalità in cui vogliamo aprire il file; può essere r per la modalità di lettura, w per la scrittura o a per la modalità di aggiunta, ecc.

Per sovrascrivere un file e scrivere alcuni nuovi dati nel file, possiamo aprire il file in modalità w, che cancellerà i vecchi dati dal file.

Codice di esempio:

with open("myFolder/myfile.txt", "w") as myfile:
    myfile.write(newData)

Se vogliamo prima leggere i dati salvati nel file e poi sovrascrivere il file, possiamo prima aprire il file in modalità di lettura, leggere i dati e poi sovrascrivere il file.

Codice di esempio:

with open("myFolder/myfile.txt", "r") as myfile:
    data = myfilef.read()

with open("myFolder/myfile.txt", "w") as myfile:
    myfile.write(newData)

Sovrascrivi un file in Python usando il metodo file.truncate()

Dato che vogliamo prima leggere i dati del file e poi sovrascriverli, possiamo farlo usando il metodo file.truncate().

Per prima cosa, apri il file in modalità di lettura usando il metodo open(), leggi i dati del file e cerca l’inizio del file usando il metodo file.seek(), scrivi i nuovi dati e tronca i vecchi dati usando il metodo file.truncate().

Il codice di esempio sotto mostra come sovrascrivere il file usando i metodi file.seek() e file.truncate().

with open("myFolder/myfile.txt", "r+") as myfile:
    data = myfile.read()
    myfile.seek(0)
    myfile.write("newData")
    myfile.truncate()