El manejo de archivos es una parte esencial de cualquier aplicación. Python ofrece varias funciones y métodos para manejar archivos de manera eficaz.

Abrir un archivo

En Python, la función open() se utiliza para abrir un archivo, que devuelve un objeto de archivo.

file = open("ejemplo.txt", "r")  # Abre el archivo en modo lectura

Modos de apertura

  • "r": Leer (por defecto)
  • "w": Escribir (sobrescribe o crea un nuevo archivo)
  • "a": Añadir (añade al final del archivo)
  • "b": Modo binario (leer/escribir en formato binario)

Leer un archivo

Una vez abierto el archivo, puedes leerlo de diferentes maneras.

  • read(): Leer todo el contenido
  • readline(): Leer una línea
  • readlines(): Leer todas las líneas en una lista
content = file.read()
line = file.readline()
lines = file.readlines()

Escribir en un archivo

  • write(): Escribir un string en el archivo
  • writelines(): Escribir una lista de strings
file.write("Hola, mundo")
file.writelines(["Hola, ", "mundo"])

Cerrar un archivo

Cerrar un archivo liberará los recursos asociados con él.

file.close()

Utilizando with

Es recomendable usar la declaración with para manejar archivos. Esto asegura que el archivo se cierre automáticamente después de su uso.

with open("ejemplo.txt", "r") as file:
    content = file.read()

Gestores de contexto en Python ( with)

La palabra reservada with es utilizada para simplificar la gestión de recursos como archivos, conexiones de red y otros, asegurando que las operaciones de configuración y limpieza se ejecuten correctamente en todos los casos. Para el caso de los archivos, garantiza que el archivo se cierre al “salir” del bloque sin tener que hacerlo explícitamente, incluso consideración la ocurrencia de una excepción. Para otro tipos de recursos, el comportamiento puede variar ya que depende de la implementación.

Ejemplo: Sin usar with, se puede tener el siguiente código:

file = open("ejemplo.txt", "r")
try:
    contenido = file.read()
    print(contenido)
finally:
    file.close()

Y se puede simplificar con with así:

with open("ejemplo.txt", "r") as file:
    contenido = file.read()
    print(contenido)