18. Archivos externos - manuelmarinduque/Apuntes_Python_3 GitHub Wiki

Archivos externos

Toma de Archivos externos I. Vídeo 37

El objetivo de los archivos o ficheros externos es la persistencia de datos, la cual consiste en guardar la información trabajada durante la ejecución de un programa (valores de variables o atributos y estado de objetos) para no perderla al cierre y tenerla disponible a futuro.

Para trabajar con archivos externos se necesita importar el módulo IO de la biblioteca de Python. Ver sus métodos en la documentación

Nota: El archivo externo se crea en la misma carpeta donde se encuentra el archivo principal que importa y ejecuta los módulos del programa.

Se tiene dos alternativas para la persistencia de datos:

  • Manejo de archivos externos de texto plano .txt.

  • Trabajar con bases de datos, que se verá más adelante.

Fases necesarias para guardar infromación en archivos externos

  • Creación y apertura: Del módulo IO importar el método open, el cual crea y abre el archivo externo, asignándolo a una variable. Recibe dos String como parámetros: el nombre del archivo y el modo de apertura para su posterior manipulación: lectura w, escritura r, ambos r+ o append a (para agregar información a un archivo que ya existe y contiene información). Al ejecutar el programa con estas LdC se genera en la carpeta donde está el módulo el archivo externo.

  • Manipulación: Mediante la nomenclatura del punto, el archivo externo llama al método:

    • write para escritura: Recibe como parámetro un valor a guardar, sea en forma directa o a través de una variable.

    • read para lectura: Asigna en una variable el contenido del archivo.

    • readlines para lectura: Asigna cada línea del archivo en un elemento de una lista, permitiendo una fácil manipulación de su contenido a través de los métodos de listas y bucles.

    • apppend para escritura: Para agregar información.

  • Cierre: Luego de manipular el archivo, con la nomenclatura del punto, este se cierra mediante el método close.

Nota: La escritura y lectura empieza desde donde está ubicado el puntero o cursor. Por defecto empieza desde la posición 0. Con el método seek(posición), que recibe como parámetro una posición concreta, se puede desplazar el puntero para manipular el contendio del archivo. Luego de aplicar el método read el puntero se ubica al final del contenido, lo que implica que un nuevo llamado al método no leería nada. Usando el anterior método con el parámetro 0: seek(0) ubica el puntero al inicio lo que el nuevo llamado al método leería todo el contenido del archivo. Luego de aplicar el método write el puntero se ubica al final, a menos que se cambie el modo de apertura, y un nuevo llamado al método escribiría pegado al contenido, por lo que es necesario que el contenido a agregar inicie con un salto de línea.

Ejemplos:

# Importar módulo IO:
from io import open

# Crear archivo externo:
archivo_texto = open("archivo.txt", "w") # w = write

# Escribir en el archivo externo:
frase = "Estupendo dia para estudiar Python \n el miercoles"
archivo_texto.write(frase)

# Nueva escritura, cursor al final del contenido, debe iniciar con un salto de línea:
frase2 = "\n fantastico dia"
archivo_texto.write(frase2)

frase3 = "\n ahora si una linea"
archivo_texto.write(frase3)

# Cerrar el archivo:
archivo_texto.close()
from io import open

archivo_texto = open("archivo.txt", "r")

# Leer el archivo externo:
texto = archivo_texto.read()
print(texto)

# Volver a leer, lo que implica ubicar el puntero en el inicio:
archivo_texto.seek(0)
texto2 = archivo_texto.read()
print(texto2)

archivo_texto.close()
from io import open

archivo_externo = open("archivo.txt", "r")

# Generar lista:
lineas_texto = archivo_externo.readlines()

archivo_externo.close()

print(lineas_texto)
print(lineas_texto[0])
from io import open

archivo_texto = open("archivo.txt", "a")

# De escritura:
texto = archivo_texto.write("\n siempre es divertido")

archivo_texto.close()
⚠️ **GitHub.com Fallback** ⚠️