¿Cómo buscar y reemplazar texto en un archivo en Python?

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *