Acorde贸n de los 脥ndices
脥ndice de los temas
Lecci贸n: 39 - Writing to Files in Python
✍️ File Write
✍️ Para escribir en un archivo en Python, primero necesitamos abrir el archivo en un modo que permita la escritura. Los modos m谩s comunes para escribir son:
'w'
: Modo de escritura (write). Abre el archivo para escritura. Si el archivo existe, sobrescribe su contenido. Si no existe, crea un nuevo archivo.'a'
: Modo de a帽adir (append). Abre el archivo para escritura, pero en lugar de sobrescribir, a帽ade el nuevo contenido al final del archivo. Si no existe, crea un nuevo archivo.
Una vez que el archivo est谩 abierto en el modo adecuado, podemos utilizar el m茅todo write()
del objeto archivo para escribir datos en 茅l.
El m茅todo write()
:
El m茅todo write()
escribe una cadena de texto (en modo texto) o una secuencia de bytes (en modo binario) en el archivo. No a帽ade un car谩cter de nueva l铆nea (\n
) autom谩ticamente, por lo que si deseas escribir l铆neas separadas, debes incluir el car谩cter \n
al final de cada l铆nea.
Ejemplo: Escribir en un archivo usando el modo 'w'
(sobrescribir):
try:
with open("mi_archivo_escritura.txt", "w") as archivo:
archivo.write("Este es el primer texto que se escribe en el archivo.\n")
archivo.write("Esta es la segunda l铆nea.\n")
print("Se ha escrito en el archivo 'mi_archivo_escritura.txt'.")
except Exception as e:
print(f"Ocurri贸 un error al escribir en el archivo: {e}")
En este ejemplo, abrimos el archivo "mi\_archivo\_escritura.txt" en modo escritura ("w"
). Si el archivo no existe, se crear谩. Si existe, su contenido anterior ser谩 eliminado y reemplazado por las dos l铆neas que escribimos. La sentencia with
asegura que el archivo se cierre correctamente despu茅s de la escritura.
Ejemplo: Escribir en un archivo usando el modo 'a'
(a帽adir):
try:
with open("mi_archivo_existente.txt", "a") as archivo:
archivo.write("Este texto se a帽adir谩 al final del archivo.\n")
archivo.write("Otra l铆nea a帽adida.\n")
print("Se ha a帽adido texto al archivo 'mi_archivo_existente.txt'.")
except Exception as e:
print(f"Ocurri贸 un error al a帽adir texto al archivo: {e}")
Aqu铆, abrimos "mi\_archivo\_existente.txt" en modo a帽adir ("a"
). Si el archivo existe, el nuevo texto se escribir谩 al final. Si no existe, se crear谩 un nuevo archivo con el texto escrito.
Consideraciones importantes:
- Al abrir un archivo en modo
'w'
, ten cuidado, ya que eliminar谩s cualquier contenido previo del archivo sin previo aviso. - Siempre es una buena pr谩ctica utilizar la sentencia
with open(...)
para asegurar que el archivo se cierre correctamente despu茅s de la operaci贸n de escritura, incluso si ocurren errores.
馃摑 Write to an Existing File
馃摑 Cuando necesitamos escribir en un archivo que ya existe, Python nos ofrece dos modos principales al abrir el archivo con la funci贸n open()
:
- Modo de escritura (
'w'
): Si abres un archivo existente en modo'w'
, todo el contenido anterior del archivo ser谩 eliminado y reemplazado por los nuevos datos que escribas. 脷salo con precauci贸n si no quieres perder la informaci贸n previa. - Modo de a帽adir (
'a'
): Si abres un archivo existente en modo'a'
, el nuevo contenido que escribas se a帽adir谩 al final del archivo, sin modificar el contenido existente.
En ambos casos, una vez que el archivo est谩 abierto en el modo correcto, utilizamos el m茅todo write()
para escribir la informaci贸n deseada.
Ejemplo: Sobrescribir un archivo existente usando el modo 'w'
:
# Supongamos que ya existe un archivo llamado 'mi_archivo_viejo.txt' con alg煤n contenido.
try:
with open("mi_archivo_viejo.txt", "w") as archivo:
archivo.write("Este es el nuevo contenido que reemplazar谩 todo lo anterior.\n")
print("El archivo 'mi_archivo_viejo.txt' ha sido sobrescrito.")
except FileNotFoundError:
print("Error: El archivo 'mi_archivo_viejo.txt' no fue encontrado.")
except Exception as e:
print(f"Ocurri贸 un error al escribir en el archivo: {e}")
En este ejemplo, si "mi\_archivo\_viejo.txt" exist铆a, su contenido ser谩 completamente reemplazado por la l铆nea "Este es el nuevo contenido que reemplazar谩 todo lo anterior.". Si no exist铆a, se crear谩 un nuevo archivo con ese contenido.
Ejemplo: A帽adir contenido a un archivo existente usando el modo 'a'
:
# Supongamos que ya existe un archivo llamado 'log_eventos.txt' con registros anteriores.
try:
with open("log_eventos.txt", "a") as archivo:
timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
archivo.write(f"[{timestamp}] - Se ha producido un nuevo evento.\n")
print("Se ha a帽adido un nuevo registro al archivo 'log_eventos.txt'.")
except FileNotFoundError:
print("Error: El archivo 'log_eventos.txt' no fue encontrado.")
except Exception as e:
print(f"Ocurri贸 un error al a帽adir texto al archivo: {e}")
En este caso, cada vez que se ejecute este c贸digo, una nueva l铆nea con la marca de tiempo y el mensaje del evento se a帽adir谩 al final del archivo "log\_eventos.txt", sin borrar los registros anteriores.
Recuerda siempre utilizar la sentencia with open(...)
para asegurar que el archivo se cierre correctamente despu茅s de las operaciones de escritura.
✨ Create a New File
✨ Python nos proporciona varias maneras de crear nuevos archivos:
Usando el modo de escritura ('w'
):
Si abres un archivo con el modo 'w'
(escritura) y el archivo especificado no existe, Python crear谩 un nuevo archivo vac铆o. Si el archivo ya existe, su contenido ser谩 sobrescrito (como vimos en el tema anterior).
try:
with open("nuevo_archivo.txt", "w") as archivo:
archivo.write("Este texto se escribir谩 en el nuevo archivo.\n")
print("Se ha creado el archivo 'nuevo_archivo.txt' y se ha escrito en 茅l.")
except Exception as e:
print(f"Ocurri贸 un error al crear el archivo: {e}")
En este ejemplo, si "nuevo\_archivo.txt" no exist铆a, se crear谩 y se escribir谩 la l铆nea de texto en 茅l. Si ya exist铆a, su contenido anterior se borrar谩 y se escribir谩 la nueva l铆nea.
Usando el modo de creaci贸n exclusiva ('x'
):
El modo 'x'
es espec铆ficamente para la creaci贸n de archivos. Si el archivo especificado ya existe, la operaci贸n de apertura fallar谩 con un error FileExistsError
. Esto es 煤til si quieres asegurarte de no sobrescribir accidentalmente un archivo existente.
try:
with open("archivo_exclusivo.txt", "x") as archivo:
archivo.write("Este texto se escribe en un archivo reci茅n creado.\n")
print("Se ha creado el archivo 'archivo_exclusivo.txt' y se ha escrito en 茅l.")
except FileExistsError:
print("Error: El archivo 'archivo_exclusivo.txt' ya existe.")
except Exception as e:
print(f"Ocurri贸 un error: {e}")
En este caso, si "archivo\_exclusivo.txt" no existe, se crear谩 y se escribir谩 el texto. Si ya existe, se imprimir谩 un mensaje de error indicando que el archivo ya existe.
Usando el modo de a帽adir ('a'
):
Aunque el modo 'a'
se utiliza principalmente para a帽adir contenido a un archivo existente, si el archivo especificado no existe, Python tambi茅n lo crear谩 (vac铆o) antes de intentar a帽adir cualquier contenido.
try:
with open("archivo_para_a帽adir.txt", "a") as archivo:
archivo.write("Este texto se a帽ade al archivo (reci茅n creado si no exist铆a).\n")
print("Se ha creado o modificado el archivo 'archivo_para_a帽adir.txt'.")
except Exception as e:
print(f"Ocurri贸 un error: {e}")
Si "archivo\_para\_a帽adir.txt" no exist铆a, se crear谩 y se escribir谩 la l铆nea. Si ya exist铆a, la l铆nea se a帽adir谩 al final.
En resumen, para crear un nuevo archivo, puedes usar el modo 'w'
(teniendo en cuenta la posibilidad de sobrescribir), el modo 'a'
(que tambi茅n crea si no existe) o, de forma m谩s segura para evitar sobrescrituras, el modo 'x'
. Recuerda siempre utilizar la sentencia with open(...)
para una gesti贸n adecuada del archivo.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias