En este artículo, aprenderemos cómo podemos reemplazar texto en un archivo usando python.
Método 1: Buscar y reemplazar texto sin usar ningún módulo externo
Veamos cómo podemos buscar y reemplazar texto en un archivo de texto. Primero, creamos un archivo de texto en el que queremos buscar y reemplazar texto. Deje que este archivo sea SampleFile.txt con los siguientes contenidos:
Para reemplazar texto en un archivo, vamos a abrir el archivo en modo de solo lectura usando la función open(). Luego vamos a t=leer y reemplazar el contenido en el archivo de texto usando las funciones read() y replace().
Sintaxis: abrir (archivo, modo = ‘r’)
Parámetros:
- archivo: ubicación del archivo
- mode : Modo en el que desea abrir el archivo.
Luego abriremos el mismo archivo en modo escritura para escribir el contenido reemplazado.
Python3
# creating a variable and storing the text # that we want to search search_text = "dummy" # creating a variable and storing the text # that we want to add replace_text = "replaced" # Opening our text file in read only # mode using the open() function with open(r'SampleFile.txt', 'r') as file: # Reading the content of the file # using the read() function and storing # them in a new variable data = file.read() # Searching and replacing the text # using the replace() function data = data.replace(search_text, replace_text) # Opening our text file in write only # mode to write the replaced content with open(r'SampleFile.txt', 'w') as file: # Writing the replaced data in our # text file file.write(data) # Printing Text replaced print("Text replaced")
Producción:
Text replaced
Método 2: Buscar y reemplazar texto usando el módulo pathlib2
Veamos cómo podemos buscar y reemplazar texto usando el módulo pathlib2. Primero, creamos un archivo de texto en el que queremos buscar y reemplazar texto. Deje que este archivo sea SampleFile.txt con los siguientes contenidos:
Instale el módulo pathlib2 usando el siguiente comando:
pip install pathlib2
Este módulo ofrece clases que representan rutas de sistemas de archivos con semántica apropiada para diferentes sistemas operativos. Para reemplazar el texto usando el módulo pathlib2, usaremos el método Path del módulo pathlib2.
Sintaxis: ruta (archivo)
Parámetros:
- archivo: ubicación del archivo que desea abrir
En el siguiente código estamos reemplazando «ficticio» con «reemplazado» en nuestro archivo de texto. utilizando el módulo pathlib2.
Código:
Python3
# Importing Path from pathlib2 module from pathlib2 import Path # Creating a function to # replace the text def replacetext(search_text, replace_text): # Opening the file using the Path function file = Path(r"SampleFile.txt") # Reading and storing the content of the file in # a data variable data = file.read_text() # Replacing the text using the replace function data = data.replace(search_text, replace_text) # Writing the replaced data # in the text file file.write_text(data) # Return "Text replaced" string return "Text replaced" # Creating a variable and storing # the text that we want to search search_text = "dummy" # Creating a variable and storing # the text that we want to update replace_text = "replaced" # Calling the replacetext function # and printing the returned statement print(replacetext(search_text, replace_text))
Producción:
Text replaced
Método 3: Buscar y reemplazar texto usando el módulo regex
Veamos cómo podemos buscar y reemplazar texto usando el módulo regex. Vamos a usar el método re.sub() para reemplazar el texto.
Sintaxis: re.sub(patrón, repl, string, cuenta=0, banderas=0)
Parámetros:
- repl : Texto que desea agregar
- string: Texto que desea reemplazar
Código:
Python3
# Importing re module import re # Creating a function to # replace the text def replacetext(search_text,replace_text): # Opening the file in read and write mode with open('SampleFile.txt','r+') as f: # Reading the file data and store # it in a file variable file = f.read() # Replacing the pattern with the string # in the file data file = re.sub(search_text, replace_text, file) # Setting the position to the top # of the page to insert data f.seek(0) # Writing replaced data in the file f.write(file) # Truncating the file size f.truncate() # Return "Text replaced" string return "Text replaced" # Creating a variable and storing # the text that we want to search search_text = "dummy" #Creating a variable and storing # the text that we want to update replace_text = "replaced" # Calling the replacetext function # and printing the returned statement print(replacetext(search_text,replace_text))
Producción:
Text replaced
Método 4: Uso de entrada de archivo
Veamos cómo podemos buscar y reemplazar texto usando el módulo de entrada de archivos. Para esto, usaremos el método FileInput() para iterar sobre los datos del archivo y reemplazar el texto.
Sintaxis: FileInput(files=Ninguno, inplace=False, backup=”, *, mode=’r’)
Parámetros:
- archivos : Ubicación del archivo de texto
- mode : Modo en el que desea abrir el archivo
- inplace: si el valor es True, el archivo se mueve a un archivo de copia de seguridad y
- la salida estándar se dirige al archivo de entrada
- copia de seguridad: Extensión para el archivo de copia de seguridad
Código:
Python3
# Importing FileInput from fileinput module from fileinput import FileInput # Creating a function to # replace the text def replacetext(search_text, replace_text): # Opening file using FileInput with FileInput("SampleFile.txt", inplace=True, backup='.bak') as f: # Iterating over every and changing # the search_text with replace_text # using the replace function for line in f: print(line.replace(search_text, replace_text), end='') # Return "Text replaced" string return "Text replaced" # Creating a variable and storing # the text that we want to search search_text = "dummy" # Creating a variable and storing # the text that we want to update replace_text = "replaced" # Calling the replacetext function # and printing the returned statement print(replacetext(search_text, replace_text))
Producción:
Text replaced
Publicación traducida automáticamente
Artículo escrito por imranalam21510 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA