Reemplazar una línea en un archivo en Python
-
Utilice el bucle
for
junto con la funciónreplace()
para reemplazar una línea en un archivo en Python - Cree un nuevo archivo con el contenido actualizado y reemplace el archivo original en Python
-
Utilice la función
fileinput.input()
para reemplazar el texto en una línea en Python -
Utilice el módulo
re
para reemplazar el texto en una línea en Python
El manejo de archivos se considera un aspecto esencial de cualquier aplicación web. Al igual que la mayoría de los lenguajes de programación, Python es perfectamente capaz de admitir el manejo de archivos. Le permite tratar con archivos de diferentes tipos, esencialmente para realizar algunas operaciones básicas como leer y escribir. También proporciona algunas otras opciones de manejo de archivos para operar los archivos.
Este tutorial demuestra los diferentes métodos disponibles para reemplazar una línea en un archivo en Python.
Para demostrar las diferentes formas de reemplazar una línea en un archivo en este artículo, tomaremos un archivo de texto, motivación.txt
.
Archivo de texto (motivación.txt
):
There are always second chances in life. Anybody can bounce back from hardships. The hardships that we face are just a test to check our will. A strong will is all it takes to bounce back from a loss.
La ruta del directorio de almacenamiento de este archivo puede ser diferente en la computadora del lector; por lo tanto, se recomienda realizar los ajustes necesarios.
Utilice el bucle for
junto con la función replace()
para reemplazar una línea en un archivo en Python
La función open()
se utiliza para abrir un archivo en Python. El archivo se puede abrir en formato de texto o binario, que depende del programador. La función open()
tiene varios modos, y todos proporcionan diferentes opciones de accesibilidad para abrir un archivo.
el bucle simple for
es una forma convencional de recorrer cada línea en el archivo de texto dado y encontrar la línea que queremos reemplazar. Luego, la línea deseada se puede reemplazar usando la función replace()
. Todo esto se hace en modo lectura
. Finalmente, el archivo se abre en el modo escritura
y el contenido reemplazado se escribe en el archivo dado.
El siguiente código usa el bucle for
junto con la función replace()
.
# opening the file in read mode
file = open("motivation.txt", "r")
replacement = ""
# using the for loop
for line in file:
line = line.strip()
changes = line.replace("hardships", "situations")
replacement = replacement + changes + "\n"
file.close()
# opening the file in write mode
fout = open("motivation.txt", "w")
fout.write(replacement)
fout.close()
Cree un nuevo archivo con el contenido actualizado y reemplace el archivo original en Python
Varias funciones están trabajando para implementar este proceso. El conocimiento del proceso de todas estas funciones es necesario para ejecutar este método con éxito. Necesitamos importar varias funciones de tres módulos al código Python.
- En primer lugar, necesitamos importar la función
mkstemp()
del módulotempfile
. Esta función se utiliza para devolver una tupla como salida junto con una ruta y un descriptor de archivo. - Entonces, necesitamos importar dos funciones del módulo
shutil
. La primera función es la funcióncopymode()
, que se utiliza para copiar los bits de permiso de una fuente a la ruta de destino. La segunda función es la funciónmove()
, que permite el movimiento de archivos de un lugar a otro. - Finalmente, necesitamos importar la función
remove()
del móduloOS
. Esta función permite borrar una ruta.
Todos estos módulos deben importarse al código Python actual para ejecutar el código sin errores. Un código de ejemplo que se implementa de esta manera es el siguiente.
from tempfile import mkstemp
from shutil import move, copymode
from os import fdopen, remove
# storing the path where the file is saved on your device as a variable
path = "C:\\Users\Admin\Desktop\python\test\motivation.txt"
def replacement(filepath, hardships, situations):
# Creating a temp file
fd, abspath = mkstemp()
with fdopen(fd, "w") as file1:
with open(filepath, "r") as file0:
for line in file0:
file1.write(line.replace(hardships, situations))
copymode(filepath, abspath)
remove(filepath)
move(abspath, filepath)
replacement(path, "hardships", "situations")
Utilice la función fileinput.input()
para reemplazar el texto en una línea en Python
El método fileinput.input()
obtiene el archivo como entrada línea por línea y se utiliza principalmente para agregar y actualizar los datos en el archivo dado.
Los módulos fileinput
y sys
deben importarse al código Python actual para ejecutar el código sin errores. El siguiente código usa la función fileinput.input()
para reemplazar el texto en una línea en Python.
import fileinput
import sys
def replacement(file, previousw, nextw):
for line in fileinput.input(file, inplace=1):
line = line.replace(previousw, nextw)
sys.stdout.write(line)
var1 = "hardships"
var2 = "situations"
file = "motivation.txt"
replacement(file, var1, var2)
Utilice el módulo re
para reemplazar el texto en una línea en Python
El módulo re
es un módulo incorporado que Python proporciona a los programadores que se ocupan de la expresión regular, y debe importarse al código. Ayuda a realizar la tarea de buscar un patrón en una determinada cadena.
En este método, usamos dos funciones, a saber, re.compile()
y re.escape()
, del módulo RegEx
. La función re.compile()
se utiliza para generar un objeto de expresión regular a partir del patrón de expresión regular, que luego se usa para hacer coincidir. La función re.compile()
se utiliza para ignorar o escapar de los caracteres especiales en Python.
El siguiente código usa varias funciones del módulo Regex
para reemplazar el texto en una línea en Python.
import re
def replacement(Path, text, subs, flags=0):
with open(filepath, "r+") as f1:
contents = f1.read()
pattern = re.compile(re.escape(text), flags)
contents = pattern.sub(subs, contents)
f1.seek(0)
f1.truncate()
f1.write(file_contents)
filepath = "motivation.txt"
text = "hardships"
subs = "situations"
replacement(filepath, text, subs)
Aquí, también usamos una función sub()
para reemplazar el patrón dado con una cadena o el resultado de una función específica.
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