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