37. Archivos I
Vídeo
Notas personales
En esta lección abordaremos cómo trabajar con ficheros externos de texto, utilizando para tal empresa el módulo io
. Nuestro objetivo será conseguir la persistencia de datos, es decir, salvaguardar los datos que estamos manipulando para que no se pierdan al finalizar una sesión de Python.
Existen dos alternativas para conseguir el mencionado objetivo:
- Manejar archivos externos.
- Trabajar con bases de datos (BBDD).
Las fases necesarias para guardar cierta información en archivos externos son:
- Creación del archivo externo.
- Apertura del archivo externo.
- Manipulación del archivo externo.
- Cierre del archivo externo.
La documentación del módulo io
la podemos encontrar en
este enlace.
Veamos un ejemplo sencillo en el que crearemos un archivo donde almacenar una frase. Empecemos tecleando:
from io import open
archivo_texto = open("archivo.txt", "w")
Nota: un archivo lo podemos abrir en modo lectura (r
), escritura (w
), agregar (a
)…
Si ahora acudimos al interior de la carpeta, encontraremos un archivo de texto vacío denominado archivo.txt
. En absoluto es necesario que almacenemos el fichero en una carpeta, pero únicamente procedo así para que el
repositorio mantenga una estructura coherente.
A continuación, veamos cómo incluir información (texto) en dicho archivo:
from io import open
# Creación + Apertura
archivo_texto = open("archivo.txt", "w")
frase = "Es un estupendo día para estudiar Python\nen Youtube."
# Manipulación
archivo_texto.write(frase)
# Cierre
archivo_texto.close()
De esta manera, hemos incluido el texto declarado en la variable frase
en el fichero archivo.txt
.
Acto seguido, estudiemos cómo abrir un archivo en modo lectura y acceder a su contenido:
from io import open
archivo_texto = open("archivo.txt", "r")
texto = archivo_texto.read()
archivo_texto.close()
print(texto)
Es un estupendo día para estudiar Python
en Youtube.
Otro método que nos puede resultar de utilidad a la hora de leer un archivo es readlines()
, que accede a la información almacenada línea a línea y la guarda en una lista:
from io import open
archivo_texto = open("archivo.txt", "r")
lineas_texto = archivo_texto.readlines()
archivo_texto.close()
print(lineas_texto)
['Es un estupendo día para estudiar Python\n', 'en Youtube.']
Al ser una lista, podemos utilizar ahora todo lo que hemos aprendido sobre ellas:
print(lineas_texto[0])
Es un estupendo día para estudiar Python
Finalmente, veamos cómo abrir un archivo para agregar información. Para no alterar el contenido de archivo.txt
, almacenaremos sus frases en una variable, las escribiremos en un nuevo fichero, archivo2.txt
, y sobre este último será donde agreguemos contenido adicional:
from io import open
archivo1 = open("archivo.txt", "r")
texto = archivo1.read()
archivo1.close()
archivo2 = open("archivo2.txt", "w")
archivo2.write(texto)
archivo2.close()
archivo2 = open("archivo2.txt", "a")
archivo2.write("\n¡Mañana más!")
archivo2.close()
Si acudimos a la carpeta, comprobaremos la existencia de un fichero denominado archivo2.txt
, que contiene tres líneas.
Código fuente
El código fuente y los posibles ficheros externos generados correspondientes a esta lección se encuentran disponibles para su consulta en la carpeta /lecciones/37/
del
repositorio.