Sostituisci la stringa nel file usando Python

Vaibhhav Khetarpal 10 ottobre 2023
  1. Utilizzare la funzione replace() quando i file di input e output sono diversi
  2. Utilizzare la funzione replace() quando viene utilizzato un solo file per l’input e l’output
Sostituisci la stringa nel file usando Python

La gestione dei file è un aspetto essenziale di qualsiasi applicazione web. Python, simile ad altri linguaggi di programmazione, supporta la gestione dei file. Consente ai programmatori di gestire i file ed eseguire essenzialmente alcune operazioni di base come la lettura, la scrittura e alcune altre opzioni di gestione dei file per operare sui file.

La funzione open() può essere utilizzata per aprire un file nel programma Python. Il file può essere aperto in modalità testo o binaria che è decisa dall’utente. La funzione open() ha diverse modalità, ognuna delle quali fornisce diverse opzioni di accessibilità per l’apertura del file.

Il termine Stringa in Python può essere descritto come un cluster di caratteri Unicode racchiusi tra virgolette singole o doppie. Le stringhe possono essere contenute all’interno dei file di testo che devono essere aperti nel codice Python.

Questo tutorial discuterà diversi metodi per sostituire una stringa in un file in Python.

Utilizzare la funzione replace() quando i file di input e output sono diversi

Il metodo replace() in Python viene utilizzato per cercare una sottostringa e sostituirla con un’altra sottostringa.

La funzione replace() ha tre parametri, vale a dire oldvalue, newvalue e count. Sia oldvalue che newvalue sono valori obbligatori e fornire alla funzione il parametro count è facoltativo.

Il codice seguente utilizza la funzione replace() per sostituire una stringa in Python quando i file di input e output sono diversi.

# the input file
fin = open("f1.txt", "rt")
# the output file which stores result
fout = open("f2.txt", "wt")
# iteration for each line in the input file
for line in fin:
    # replacing the string and write to output file
    fout.write(line.replace("gode", "God"))
# closing the input and output files
fin.close()
fout.close()

Nell’output del codice sopra, la stringa gode nel file sarà sostituita dalla parola God.

Nel codice sopra, lavoriamo contemporaneamente su due file diversi, f1.txt e f2.txt. f1.txt si apre nella modalità di lettura del testo rt e fa riferimento a end. f2.txt si apre nella modalità di scrittura del testo wt e fa riferimento a fout. Quindi il cicli for viene iterato e, per ogni occorrenza della stringa gode nel file, viene sostituita dalla parola God. Entrambi i file vengono poi chiusi dopo le necessarie operazioni con l’aiuto della funzione close().

Utilizzare la funzione replace() quando viene utilizzato un solo file per l’input e l’output

In questo metodo, lo stesso file viene utilizzato sia come input che come output.

Usiamo qui l’istruzione with insieme alla funzione replace(). Il gestore di contesto with ha una funzione fondamentale: rendere il programma più breve e molto più leggibile.

Quando usiamo l’istruzione with con Gestione file, il file che abbiamo aperto nel codice Python non ha bisogno di essere chiuso manualmente; si chiude automaticamente al termine del blocco with.

Il codice seguente usa la funzione replace() per sostituire una stringa in Python quando il file di input e output è lo stesso.

with open("file1.txt", "rt") as file:
    x = file.read()

with open("file1.txt", "wt") as file:
    x = x.replace("gode", "God")
    fin.write(x)

Il codice seguente accetta file1 sia come file di input che come file di output. Innanzitutto, il file viene aperto nella modalità di lettura del testo rt e il contenuto del file viene letto e memorizzato in una variabile. Quindi, il file viene chiuso e aperto di nuovo, ma questa volta nella modalità di scrittura del testo wt. La stringa viene sostituita e i dati vengono scritti in questa modalità, quindi il file viene chiuso.

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

Articolo correlato - Python File

Articolo correlato - Python String