IWI131 Programación


Archivos de Texto



Departamento de Informática
Universidad Técnica Federico Santa María

Archivos de Texto

Tipo de archivo informático que contiene únicamente texto formado por caracteres que son legibles por humanos, careciendo de cualquier tipo de formato tipográfico.

Ejemplo de archivo: quijote.txt

En un lugar de la Mancha
de cuyo nombre no quiero acordarme
no ha mucho tiempo que vivia un hidalgo

Protocolo de uso

  1. Abrir el archivo
  2. Recorrer el archivo
  3. Cerrar el archivo

Apertura de Archivo

Un archivo puede ser abierto mediante la función open, que acepta como parámetros la dirección donde se encuentra el archivo y el modo de apertura. Los modos de apertura son:

  • Lectura 'r'
  • Escritura 'w'
  • Escritura añadiendo al final del archivo 'a'
In [1]:
# Por omisión los archivos se abren en modo 'r'
archivo = open('quijote.txt')

Recorrer el archivo

Un archivo puede considerarse un tipo de dato iterable, es decir, podemos recorrerlo con for.

Al momento de iterar el archivo, se incluye la secuencia de escape. Por ejemplo 'En un lugar de la Mancha\n'. Si queremos "limpiar" la línea leída es necesario utilizar la función strip(), vista en procesamiento de texto.

In [2]:
for linea in archivo:
    # Operaciones sobre linea
    linea = linea.strip()
    print(linea)
En un lugar de la Mancha
de cuyo nombre no quiero acordarme
no ha mucho tiempo que vivia un hidalgo

Cierre de archivo

El último paso es cerrar el archivo luego de leer la información. Para ello se utiliza el método close().

In [3]:
archivo.close()

Creación de archivos

Apertura

Para escribir un archivo, este debe abrirse en modo escritura usando la función open con el parámetro 'w'.

In [4]:
nuevo_archivo = open('prueba.txt', 'w')

Escritura

Se utilizará el método write, que recibe como parámetro un string con el texto que se escribirá en el archivo.

In [5]:
nuevo_archivo.write('Informacion\n')
Out[5]:
12

Cierre

Al igual que en el caso de lectura, luego de escribir la información se debe cerrar el archivo con close().

In [6]:
nuevo_archivo.close()

Agregar información a un archivo existente

Apertura

Para escribir un archivo, este debe abrirse en modo 'a' usando la función open.

In [7]:
archivo = open('prueba.txt', 'a')

Escritura

Se utilizará el método write, que recibe como parámetro un string con el texto que se agregará en el archivo.

In [8]:
archivo.write("Nueva informacion\n")
Out[8]:
18

Cierre

Al igual que en el caso de lectura y escritura, luego de escribir la información se debe cerrar el archivo con close().

In [9]:
archivo.close()

Archivos con separador

Considere el archivo alumnos.txt que utiliza un caracter para separar la información. Por ejemplo:

Esteban:Gutierrez:49:18:32
Luisa:Miranda:68:44:99
Jean Paul:Munoz:48:38:81
Gianfranco:Basso:54:54:50
Romina:Smith:100:98:9

Lectura de este tipo de archivos

In [10]:
archivo = open('alumnos.txt')
for linea in archivo:
    valores = linea.strip().split(':')
    nombres = valores[0:2]
    notas = []
    for nota in valores[2:5]:
        notas.append(int(nota))
    print(nombres[0], notas)
archivo.close()
Esteban [49, 18, 32]
Luisa [68, 44, 99]
Jean Paul [48, 38, 81]
Gianfranco [54, 54, 50]
Romina [100, 98, 92]

Ejercicios

  1. Escriba un programa que abra el archivo quijote.txt y cuente:
    • el número de letras,
    • el número de palabras,
    • el número de líneas.
  1. A partir del archivo alumnos.txt, crear los siguientes archivos:

aprobados.txt.

Luisa,Miranda,70
Jean Paul,Munoz,56
Romina,Smith,97

reprobados.txt

Esteban,Gutierrez,33
Gianfranco,Basso,53