Reemplazar cadena en archivo usando Python

Vaibhhav Khetarpal 10 octubre 2023
  1. Utilice la función replace() cuando los archivos de entrada y salida sean diferentes
  2. Use la función replace() cuando solo se usa un archivo para entrada y salida
Reemplazar cadena en archivo usando Python

El manejo de archivos es un aspecto esencial de cualquier aplicación web. Python, al igual que otros lenguajes de programación, admite el manejo de archivos. Permite a los programadores manejar archivos y esencialmente realizar algunas operaciones básicas como leer, escribir y algunas otras opciones de manejo de archivos para operar en archivos.

La función open() se puede utilizar para abrir un archivo en el programa Python. El archivo se puede abrir en modo texto o binario, según lo decida el usuario. La función open() tiene varios modos, todos los cuales proporcionan diferentes opciones de accesibilidad para que se abra el archivo.

El término cadena en Python se puede describir como un grupo de caracteres Unicode encerrados entre comillas simples o dobles. Las cadenas pueden estar contenidas dentro de los archivos de texto que se abrirán en el código Python.

Este tutorial discutirá diferentes métodos para reemplazar una cadena en un archivo en Python.

Utilice la función replace() cuando los archivos de entrada y salida sean diferentes

El método replace() en Python se utiliza para buscar una subcadena y reemplazarla con otra subcadena.

La función replace() tiene tres parámetros, a saber, oldvalue, newvalue y count. Tanto oldvalue como newvalue son valores obligatorios, y proporcionar la función con el parámetro count es opcional.

El siguiente código usa la función replace() para reemplazar una cadena en Python cuando los archivos de entrada y salida son diferentes.

# 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()

En la salida del código anterior, la cadena gode en el archivo será reemplazada por la palabra God.

En el código anterior, trabajamos simultáneamente en dos archivos diferentes, f1.txt y f2.txt. f1.txt se abre en el modo de lectura de texto rt y se hace referencia a fin. f2.txt se abre en el modo de escritura de texto wt y se hace referencia a fout. Luego se repite el bucle for y, por cada aparición de la cadena gode en el archivo, se reemplaza por la palabra God. A continuación, ambos archivos se cierran después de las operaciones necesarias con la ayuda de la función close().

Use la función replace() cuando solo se usa un archivo para entrada y salida

En este método, se utiliza el mismo archivo como entrada y salida.

Usamos la instrucción with aquí junto con la función replace(). El gestor de contexto with tiene una función fundamental: hacer que el programa sea más corto y mucho más legible.

Cuando usamos la instrucción with con Manejo de archivos, el archivo que abrimos en el código Python no necesita cerrarse manualmente; se cierra automáticamente después de que termina el bloque with.

El siguiente código usa la función replace() para reemplazar una cadena en Python cuando el archivo de entrada y salida es el mismo.

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)

El siguiente código toma file1 como archivo de entrada y de salida. En primer lugar, el archivo se abre en el modo de lectura de texto rt, y el contenido del archivo se lee y se almacena en una variable. Luego, el archivo se cierra y se abre de nuevo, pero esta vez en el modo de escritura de texto wt. La cadena se reemplaza y los datos se escriben en este modo, y luego se cierra el archivo.

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

Artículo relacionado - Python File

Artículo relacionado - Python String