Python - Lección 21: Manejo de archivos

Manejo de archivos

Como vimos anteriormente, Python puede integrarse muy bien con nuestro sistema operativo y podemos manipular de manera directa sobre los comandos de nuestro sistema, lo que nos permitiría la manipulación de archivos de manera indirecta. Ahora vamos a ver como manipular archivos de manera más directa.

  • Lo primero que debemos hacer es crear una variable que contenga la ruta absoluta del archivo, es decir, donde este se encuentra localizado junto con su nombre:
path = '/home/[usuario]/archivo.txt'
  • Ahora se continúa “abriendo” el archivo desde Python. Esto se consigue con la función open, ingresándole los parametros de path (la ruta absoluta del archivo o la variable que creamos anteriormente) y lo que deseamos hacer con el archivo, es decir, el modo:
mi_archivo = open (path, 'r')

Existen seis acciones disponibles para un archivo, r, w, a, r+, w+ y a+.

Modo Nombre Descripción
r read (leer) Es el modo de sólo lectura y también por defecto.
w write (escribir) En caso de no existir el archivo, creará uno nuevo o sobreescribirá el archivo existente.
a append (anexar) Escribirá los datos al final del archivos, el cual debe existir para utilizar este modo.
r+ read/write (leer/escribir) Como su nombre lo indica, abre el archivo en modo de lectura y escritura, y el puntero se posicionará en la primera línea del archivo.
w+ read/write (leer/escribir) Hace exactamente lo mismo que r+, con la diferencia de que si el archivo no existe, lo crea. También sobreescribirá la información que el archivo ya contenía en caso de existir.
a+ read/write (leer/escribir) Este modo también creará el archivo si no existe, pero si existe, en lugar de sobreescribirlo, añadirá los datos nuevos al final del archivo.
  • Una vez abierto, podemos proceder a leer la información que contiene, gracias al método .read():
print (mi_archivo.read())
  • Cuando ya hayamos terminado de manipular el documento, deberemos cerrarlo para evitar que sufra modificaciones indeseadas en caso de que nuestro programa contenga más manipulaciones de archivos posteriores a ese segmento del código:
mi_archivo.close()
  • Podemos leer línea por línea con el método .readline()
path = '/home/[usuario]/archivo.txt'

mi_archivo = open (path, 'r')

print (mi_archivo.readline())

mi_archivo.close()
  • Si utilizamos la función .readlines(), cada línea del documento puede ser almacenada en una lista, como un elemento individual:
path = '/home/[usuario]/archivo.txt'

mi_archivo = open (path, 'r')

lista1 = mi_archivo.readlines()

print(lista1)

mi_archivo.close()
  • Ahora vamos a aplicar un breve ejemplo del modo w:
path = '/home/[usuario]/archivo.txt'

mi_archivo = open (path, 'w')

mi_archivo.write ("Probando la escritura de archivos.")

mi_archivo.close()

mi_archivo2 = open (path, 'r')

print (mi_archivo2.read())

mi_archivo2.close()

Algo muy importante para aclarar y que van a usar constantemente, es el formato de las cadenas string.
En la lección 5 vimos como al aplicar el formato, podemos insertar el valor de variables en medio de cadenas de string y así no tener que modificar dicha cadena, cada vez que un valor cambie.

path = '/home/[usuario]/archivo.txt'

variable1 = input ("Ingrese un número: ")

mi_archivo = open (path, 'w')

mi_archivo.write(f"El número ingresado es: {variable1}")

mi_archivo.close()

mi_archivo2 = open (path, 'r')

print (mi_archivo2.readline())

mi_archivo2.close()
  • Para finalizar, vamos a ejemplificar cómo funciona el modo a (append):
path = '/home/[usuario]/archivo.txt'

mi_archivo = open (path, 'a')

mi_archivo.write("\nAñadiendo líneas al archivo.")

mi_archivo.close()

mi_archivo2 = open (path, 'r')

lista1 = mi_archivo2.readlines()

print (lista1)

mi_archivo2.close()

Si ejecutamos ese último script múltiples veces, veremos cómo en cada ocasión, una línea nueva se añadirá al final del archivo.

<Tema anterior - Tema siguiente>

2 Me gusta