Agenda
8.1 Conceptos básicos de archivos.
8.2 Operaciones de entrada y salida utilizando archivos.
Objetivos
• Distinguir entre almacenamiento temporal y persistente para un
manejo de datos adecuado.
• Identificar los tipos de archivos para su correcta manipulación en
un programa.
• Utilizar operaciones de lectura y escritura propias de archivos
para la manipulación y análisis de datos almacenados.
8.1 – Conceptos básicos de archivos
Archivos
• Hasta ahora nuestros programas cargan sus datos en memoria.
• Si hacemos algún cambio sobre ellos, estos se perderán cuando se cierre
el programa.
Debemos usar algún medio para que los datos persistan.
Persistencia: Archivos
Archivos
• Python ofrece funciones y métodos para manejar archivos secuenciales de
texto en disco.
• Estas instrucciones permiten almacenar los datos en disco, de manera que se
puedan conservar y usar posteriormente.
• La información que se almacena son cadenas de texto.
8.2 – Operaciones de entrada y salida con
archivos
Abriendo un archivo
• Para poder trabajar con archivos lo primero que debemos hacer es
crear una referencia al archivo con el que vamos a trabajar.
• Para ello usamos la función open, que retorna una referencia al
archivo.
• Comúnmente esta función recibe 2 argumentos
• nombre del archivo que quiero abrir.
• Modo de apertura
Abriendo un archivo
Tipo de operación
f = open(“miarchivo.txt”, t) sobre el archivo
Nombre del archivo
Tipos de Operación:
• ‘r’: Leer datos del archivo
• ‘w’: Crear el archivo y agregar datos, si el archivo existe lo borra y lo crea.
• ‘a’: Agregar datos al archivo, Si el archivo no existe lo crea. Siempre agrega
los datos en una nueva línea al final del archivo
• ‘a+’, ‘w+’, ‘r+’: lectura y escritura del archivo.
Abriendo un archivo
• ¿Qué pasa si abrimos un archivo que no existe, en modo escritura
‘r’?
f = open(“test.txt”, “r”)
SE PRODUCE UN ERROR Y SE TERMINA EL PROGRAMA
Abriendo un archivo
• ¿Qué pasa si abrimos un archivo que no existe, en modo escritura
‘w’, ‘a’ , ‘w+’, ‘r+’ ?
f = open(“a.txt”, “w”)
El archivo es creado en el directorio donde se encuentra el script de
Python en el que nos encontramos trabajando.
Abriendo un archivo
• ¿Qué pasa si abrimos un archivo que no existe, en modo escritura
‘w’, ‘a’ , ‘w+’, ‘r+’ ?
Abriendo un archivo
• ¿Qué pasa si abrimos un mismo archivo dos veces en modo escritura?
f = open(“miarchivo.txt”, “w”)
f1 = open(“miarchivo.txt”, “w”)
Si no cerramos el archivo y ejecutamos operaciones de escritura, los
datos se sobrescribirán.
Leyendo el contenido de un archivo - readline
>> v = f.readline()
Variable donde se
almacenará la línea
readline() lee una línea de texto del archivo hasta encontrar el carácter
de salto de línea: ‘\n’
Si no quedan líneas , retorna un string vacío ‘’
Cerrando un archivo
• Al finalizar la operación con un archivo, este debe cerrarse.
• En el ingreso de datos, esta operación se necesita para completar el
ingreso de los datos en el archivo.
>> f.close()
Si abres un archivo, siempre debes cerrarlo una vez que hayas
finalizado con las operaciones.
Leyendo el contenido de un archivo - readline
• En este ejemplo vamos a leer la primera línea del archivo
estudiantes.txt y luego vamos a mostrarlo en pantalla.
El archivo estudiantes.txt se encuentra en la misma carpeta que el
programa en python
Leyendo el contenido de un archivo - readline
• Para leer todos los registros del archivo estudiantes.txt, es necesario
realizar la lectura de varias líneas, registro a registro, hasta llegar al
último y encontrar una línea vacía”.
• En el siguiente ejemplo leeremos todos los registros de
estudiantes.txt y los almacenaremos en una lista.
Leyendo el contenido de un archivo - readline
Leyendo el contenido de un archivo – usando
lazo for
• Para iterar sobre todas las líneas de un archivo también podemos
usar un lazo for.
• En cada iteración del lazo leemos un nueva línea.
• El lazo se termina cuando no hay más líneas en el archivo.
Leyendo el contenido de un archivo – usando
lazo for
Leyendo el contenido de un archivo – usando
lazo for
• En el siguiente ejemplo leeremos el contenido del archivo estudiantes
y almacenaremos en una lista los nombres de los estudiantes de la
carrera de telemática.
Ejercicio Autónomo 1
• Escriba un programa en
pyton que lea el archivo
provincias.txt y muestre en
pantalla los nombres de las
provinicas de la costa.
Leyendo el contenido de un archivo
>> v = f.readlines()
v es una lista cuyos elementos
son las líneas del archivo.
readlines() Transfiere a una lista todas las líneas de texto del archivo.
Ejemplo readlines
¿Cuál sería la mayor desventaja de emplear readlines ( ) en lugar de
readline( ) o for para un archivo?
Escribiendo en un archivo
>> f.write (s)
Cadena de caracteres a ser
escrita en el archivo
write() escribe en el archivo una línea de texto, normalmente
finalizada con el caracter de fin de línea ‘\n’
Escribiendo en un archivo - ejemplo
• Crearemos un archivo llamado materias_semestre.txt que tendrá las
matrículas de cada estudinate junto con las materias que está
tomando en el semestre.
Recordar!!
• ¿Qué pasa cuando abrimos un archivo en modo de escritura?
• Si el archivo no existe, se crea
• Si el archivo existe, se borra el contenido anterior y es reemplazado por el
nuevo.
• Después del haber ejecutado el archivo ejemplo_escritura1.py se
debión haber creado el archivo materias_semetre.txt
Ejercicio
• Modifique el archivo materias_semestre.txt y luego corra el ejemplo
ejemplo_escritura1.py - ¿Qué paso con el contenido del archivo?
Escribiendo un archivo
• ¿Qué pasa si intentamos escribir en un archivo que fue abierto en
modo de lectura?
Escribiendo en un archivo
>> f.writelines (ls)
Cadena de caracteres a ser
escrita en el archivo
writelines() recibe como argumento una lista de cadenas, escribe
todos los elementos de la lista en un archivo. El caracter de fin de línea
‘\n’ no es agregado si los elementos de la lista no lo tienen.
Escribiendo en un archivo
Después de ejecutar el programa se crea
el archivo lenguajes_programacion.txt
Agregando línea al final del archivo.
• Para escribir información al final del archivo debemos (sin borrar el
contenido anterior) debemos abrir el archivo en modo ´a´
• En el siguiente ejemplo agregaremos al archivo de estudiantes dos
nuevos registros.
Agregando línea al final del archivo - ejemplo
Ejercicio Autónomo 2
• Escriba un programa en python que lee el archivo provincias.txt y
genere un archivo llamado densidad_poblacional.txt con los
nombres y densidad poblacional de cada una de las procincias en el
archivo provincias.txt. La densidad poblacional es la división entre el
número de habitantes y área de la provincia.
Otras funciones
>> p=f.tell()
Entero que almacenará la posición actual
• tell() detecta la posición actual de la lectura en el archivo
>> f.seek(d)
Entero que especifica el desplazamiento
contado a partir del inicio (posición 0)
• seek() ubica la lectura del archivo en una posición especificada
Verificar si un archivo existe
• Para comprobar si un archivo existe podemos usar la función exist
que se encuentra en el paquete os. Esta función recibe como
parametro el nombre del archivo y retorna true si el archivo existe y
false caso contrario.
• Sintaxis: