Documentos de Académico
Documentos de Profesional
Documentos de Cultura
archivos
Lectura y escritura de archivos
El concepto popular de “archivo” es un poco diferente en Python.
En Windows por ejemplo, un archivo puede ser un elemento manipulado, editado o creado
por el usuario o sistema operativo. Esto quiere decir que los archivos pueden ser imágenes,
documentos de texto, archivos ejecutables y muchos más.
Los archivos de texto están formados por una secuencia de líneas, donde cada línea incluye
una secuencia de caracteres. Esto es lo que se conoce como código o sintaxis.
Lectura y escritura de archivos
Cada línea finaliza con un carácter especial, llamado EOL(End of Line) o carácter de fin de
línea. Hay varios tipos de caracteres de fin de línea pero los más comunes son la coma (,) o el
carácter de salto de línea (\n).
La entrada y salida de ficheros (comúnmente llamada File I/O) es una herramienta que
Python, como la mayoría de los lenguajes, brinda de forma estándar. Su utilización es similar
a la del lenguaje C, aunque añade mayores características.
El primer paso para introducirnos es saber cómo abrir un determinado archivo. Para esto se
utiliza la función open, que toma como primer argumento el nombre de un archivo (fichero).
Esto no significa ejecutar el programa por defecto para editar el fichero, sino cargarlo en la
memoria para poder realizar operaciones de lectura y escritura.
Como segundo argumento, open espera el modo (como una cadena) en el que se abrirá el
fichero. Esto indica si se utilizará para lectura, escritura, ambas, entre otras.
open("archivo.txt", "r")
Lectura y escritura de archivos
open("archivo.txt", "r")
La r indica el modo lectura. Si se intentara utilizar la función write para escribir algo, se
lanzaría la excepción IOError.
• r - Lectura únicamente.
• w - Escritura únicamente, reemplazando el contenido actual del archivo o bien
creándolo si es inexistente.
• a - Escritura únicamente, manteniendo el contenido actual y añadiendo los datos al
final del archivo.
• w+, r+ o a+ - Lectura y escritura.
Lectura y escritura de archivos
El signo '+' permite realizar ambas operaciones. La diferencia entre w+ y r+ consiste en que
la primera opción borra el contenido anterior antes de escribir nuevos datos, y crea el
archivo en caso de ser inexistente. a+ se comporta de manera similar, aunque añade los
datos al final del archivo.
Todas las opciones anteriores pueden combinarse con una 'b' (de binary), que consiste en
leer o escribir datos binarios. Esta opción es válida únicamente en sistemas Microsoft
Windows, que hacen una distinción entre archivos de texto y binarios. En las demás
plataformas, es simplemente ignorada.
Por último, open() retorna una instancia de la clase file, desde la cual se podrán ejecutar
diversas operaciones.
f = open("archivo.txt", "w")
Lectura y escritura de archivos
f = open("archivo.txt", "w")
f.write("Esto es un texto.")
Reiteradas llamadas a esta función añaden texto al archivo hasta que sea cerrado.
f.close()
Lectura y escritura de archivos
Con respecto a la lectura de datos desde un archivo, las tres funciones disponibles son read,
readline y readlines.
f = open("archivo.txt", "r")
contenido = f.read()
print(contenido)
f.close()
Imprime:
Una segunda llamada a f.read() retornaría una cadena vacía, debido a que ya se ha obtenido
todo el contenido.
Lectura y escritura de archivos
La función readline realiza la lectura línea por línea, retornando sólo la línea actual.
print(f.readline())
print(f.readline())
Imprime:
print(f.readlines())
Imprime:
Para iterar entre todas las líneas de un archivo, se presentan dos opciones similares:
for línea in f:
print(línea)
Lectura y escritura de archivos
El llamado a las funciones read, readline y readlines realiza un desplazamiento de posición
entre las líneas del fichero.
Ejemplo:
f.seek(10)
print(f.read())
a línea.
Esta es la segunda línea.
Lectura y escritura de archivos
A partir de Python 2.5 se puede utilizar with para asegurar que el archivo sea cerrado al
finalizar su utilización, incluso si se produce un error.
Lo que es equivalente a:
try:
f = open("archivo.txt", "r")
content = f.read()
finally:
f.close()
Lectura y escritura de archivos
Al utilizar la función open(), esta retorna un objeto file. Los objetos file contienen métodos
y atributos que se usan para recolectar información sobre el archivo que se acaba de abrir,
así como también para manipular dicho archivo.
El atributo mode de un objeto file permite saber el modo en que fue abierto un archivo.
El atributo name contiene el nombre del archivo abierto en el objeto file.
El atributo closed retorna True si el archivo está cerrado, si no, False.
Llamar f.write sin usar with o llamar f.close() puede dar como resultado que los argumentos
f.write no se escriban completamente en el disco, incluso si el programa se cierra
correctamente.
Una vez que se cierra un objeto de archivo, ya sea mediante una with declaración o mediante
una llamada f.close(), los intentos de utilizar el objeto de archivo generarán una excepción.
Lectura y escritura de archivos
1. Escribir una función que solicite un número entero entre 1 y 9 y guarde en un fichero con
el nombre tabla-n.txt la tabla de multiplicar de ese número, donde n es el número
introducido.
2. Escribir una función que pida dos números n y m entre 1 y 9, lea el fichero tabla-n.txt con
la tabla de multiplicar de ese número, y muestre en pantalla la línea m del fichero. Si el
fichero no existe debe mostrar un mensaje por pantalla informándolo.