7.1 Archivos texto – Guardar/Abrir/Añadir



1. Archivos de texto

Los datos almacenados en una lista, arreglo o diccionario se pierden al apagar el computador o ante un fallo de suministro eléctrico. Por lo que almacenar la información, transferir o compartir es requisito conocido.

Los "Archivos de texto" son una forma básica de almacenar información, permite transferir o compartir los datos de una forma estándar para ser usada (importada) por una gran cantidad de programas editores de texto, hojas electrónicas, procesamiento de datos, etc.

Se presentan ejemplos, ejercicios y resumen en cada sección procesar datos desde o hacia un archivo de texto.



2. Archivo txt - Guardar

La primera acción a realizar es Guardar una línea de texto, que puede contener varios datos, separados por comas.

Ejemplo: Agenda de contactos telefónicos

Para disponer de una agenda de contactos telefónicos y no perder los datos cuando se cierra Python o se apaga el computador, se almacena los datos en un archivo tipo texto.

Los datos básicos de un contacto telefónico se describen como un registro.

registro: un nombre, un apellido y un número telefónico.

Ejecuta las siguientes instrucciones y observa el resultado en el archivo con nombre 'miscontactos.txt' en el directorio de trabajo

nombre = 'Juan'
apellido = 'Leon'
telefono = '0987654321'
nombrearchivo = 'miscontactos.txt'

# Archivo en modo escritura 'write'
archivo = open(nombrearchivo,'w')
unregistro = nombre + ',' + apellido +','+telefono +'\n'
archivo.write(unregistro)
archivo.close()  # Cierra el archivo

print('se ha guardado:',nombrearchivo)

En la imagen se puede observar el algoritmo.py que genera el archivo.txt con nombre 'miscontactos.txt.

archivo de texto guardar

El algoritmo inicia o "abre" el archivo.txt usando la instrucción open(), luego de escribir los datos se debe "cerrar" con la instrucción close() y no se realizan mas operaciones sobre el archivo. El tipo de uso del archivo se indica mediante una letra 'w' (inicial de write) para escritura.

Los datos de un contacto se escriben separados por ',' en una sola línea, para ésto se crea la cadena "unregistro" y se la envía al archivo mediante la instrucción archivo.write().



3. Archivo txt - Añadir

Semejante a una lista, arreglo o diccionario usado los archivos.txt se pueden añadir mas datos. Se supone que el archivo.txt ya existe y tan solo se añadirá uno o mas datos en una línea.

Ejemplo - varios contactos/registros

Como una persona tiene más de un contacto telefónico, el ejercicio consiste en guardar al menos tres en el archivo "miscontactos3.txt".
Al ejecutar las instrucciones, al final comprueba que los datos se encuentren registrados abriendo el archivo.

Nota: Para separar cada registro por cada línea, se crea una cadena de caracteres finalizada con un salto de línea '\n'

archivo guardar ejemplo


4. Archivo txt - Abrir

Para gestionar los datos de un ejercicio anterior se leen los datos desde el archivo. La acción o instrucción se conoce como 'abrir', 'open', que se complementa con el nombre del archivo y la forma o estructura para leer cada línea de texto.

Ejemplo 2: Abrir archivo de Agenda telefónica

Para recuperar desde un archivo los datos de los contactos, se procede de forma inversa a la escritura del archivo, recuperando un registro, quitando el salto de línea '\n' y separando los datos por ','

Ejecute las siguientes instrucciones usando el archivo 'miscontactos3.txt' del ejercicio anterior y almacenado en el directorio de trabajo, observe los resultados.

nombrearchivo = 'miscontactos.txt'

# Archivo en modo lectura 'read'
archivo = open(nombrearchivo,'r')

unregistro = archivo.readline()
unregistro = unregistro.strip('\n')
datos = unregistro.split(',')

# Cierra el archivo
archivo.close()

print('unregistro: ', unregistro)
print(datos[0])
print(datos[1])
print(datos[2])
unregistro:  Juan,Leon,0987654321
Juan
Leon
0987654321

Para recuperar varios registros de contactos, es necesario realizar la lectura de varias líneas, registro a registro, hasta llegar al último y encontrar una línea vacío ''.

archivo Abrir ejemplo

Observe que para éste ejemplo el archivo de prueba es 'miscontactos3.txt', descargue el archivo en el caso que exista un error al desarrollar el ejercicio anterior.

archivo guardar ejemplo
datos=[]
nombrearchivo = 'miscontactos3.txt'

# Archivo en modo lectura 'read'
archivo=open(nombrearchivo,'r')
unregistro = archivo.readline()
while not(unregistro==''):
    unregistro = unregistro.strip('\n')
    datos.append(unregistro.split(','))
    unregistro = archivo.readline()
# Cierra el archivo
archivo.close()

print('datos: ')
print(datos)

datos:  
[['Juan', 'Montalvo', '0987654321'], ['Manuela', 'Saenz', '0987654322'], ['Julio', 'Jaramillo', '0987654323']]

Ejercicio - añadir email a cada contacto

Al archivo de contactos añada un correo electrónico para cada contacto y guarde el resultado en el archivo: 'miscontactos4.txt'

Archivo mis contactos



Unidades FP