CodeGym /Cursos Java /Python SELF ES /Trabajo con archivos

Trabajo con archivos

Python SELF ES
Nivel 21 , Lección 0
Disponible

1.1 Apertura de archivos

Trabajar con archivos en Python es un placer, ya que es bastante sencillo e intuitivo. No estamos hablando de crear o mover archivos en el disco, sino de leer y escribir contenido de archivos.

El trabajo con el contenido del archivo generalmente sigue el siguiente esquema:


Apertura de archivo 
Trabajo con los datos del archivo
Cierre de archivo

Ejemplo de lectura de todo el contenido del archivo:


file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()

La función open se utiliza para abrir un archivo. Acepta dos argumentos principales: nombre del archivo y modo de acceso. La función devuelve un objeto archivo, que luego se puede usar para realizar operaciones de lectura y escritura.

Ejemplo:


file = open('example.txt', 'r')

Si solo se indica el nombre del archivo, se buscará en el directorio de trabajo actual del programa. Si se indica el nombre completo del archivo, se accederá a la ruta especificada.

1.2 Modos de acceso

El segundo parámetro en la función open() denota el modo de trabajo con el archivo. Los modos de acceso determinan qué operaciones se pueden realizar con el archivo (lectura, escritura, etc.).

Aquí están los principales modos de acceso:

  • Read — lectura.
  • Write — escritura.
  • Append — añadir.

Existen varias variaciones de estos modos:

  • 'r': Apertura de archivo para lectura (modo por defecto). El archivo debe existir.
  • 'w': Apertura de archivo para escritura. El contenido del archivo será eliminado. Si el archivo no existe, será creado.
  • 'a': Apertura de archivo para añadir. Los datos serán añadidos al final del archivo. Si el archivo no existe, será creado.
  • 'r+': Apertura de archivo para lectura y escritura. El archivo debe existir.
  • 'w+': Apertura de archivo para lectura y escritura. El contenido del archivo será eliminado. Si el archivo no existe, será creado.
  • 'a+': Apertura de archivo para lectura y añadir. Los datos serán añadidos al final del archivo. Si el archivo no existe, será creado.

Ejemplo de escritura en archivo:

Si quieres escribir datos en un archivo, simplemente indica w como modo de acceso al abrir el archivo. ¡Ten en cuenta que todo el contenido anterior del archivo será eliminado!


file = open('example.txt', 'w')
file.write("Hello, World!")
file.close()

Ejemplo de añadir a un archivo:

Si no quieres borrar el contenido del archivo, sino que solo quieres añadir algo al final, entonces necesitas indicar a como modo de acceso al archivo.


file = open('example.txt', 'a')
file.write("\nAppended text.")
file.close()

¡Importante! Si escribes en un archivo, y aún no existe, entonces será creado automáticamente. Pero si intentas leer datos de un archivo que no existe, se producirá una excepción.

1.3 Cierre de archivo

Cada vez que abres un archivo, el sistema operativo verifica tus permisos de acceso al archivo y lo marca como en uso por tu programa. Para trabajar con el archivo se asigna un recurso especial — handler.

La cantidad de handlers que puede obtener tu programa está limitada. Esto significa que solo puedes mantener abiertos unos pocos cientos de archivos al mismo tiempo. Parece mucho, pero si tu programa funciona en un servidor durante meses y lee y escribe algo en los archivos todos los días, este límite puede alcanzarse muy rápido.

Por lo tanto, después de que termines de trabajar con un archivo, debes cerrarlo — llamar al método close(). De esta manera, le dices al sistema operativo que ya no necesitas ese archivo, y su handler ya no es necesario.

Cierre de archivo

Después de terminar de trabajar con un archivo, es necesario cerrarlo para liberar los recursos del sistema. Para esto se utiliza el método close().


file = open('example.txt', 'r')
# Realizar operaciones con el archivo
file.close()

Cada archivo que hayas abierto para lectura o escritura debe ser cerrado. No olvides llamar al método close().

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION