ProgramaciónPythonVLA7. Manipulación de Archivos

Archivos txt

Python nos permite poder guardar algunos registros en un archivo de texto, para ello debemos de crearlo.

Un archivo de texto es lo que conocemos o relacionamos con un notepad, en él podemos guardar cualquier variable o cargar en nuestro proyecto de python.

En el momento que vamos a crear nuestro archivo txt desde Python este se estará creando en la misma ubicación donde guardemos él .py

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

Una vez que ejecutes la línea anterior debe de ir a fijarte en la ubicación donde tienes el archivo .py y podrás notar que se ha creado un archivo de texto vacío

La letra “w” sirve para crear el archivo txt, y sobre escribe la información dejando el archivo en blanco.

La letra “a” sirve para añadir más información al archivo txt. Para poder agregar información a este mismo archivo de texto.

archivo = open("prueba.txt", "a")
archivo.write("Hola\\n")
archivo.write("Como estas?\\n")
archivo.close()

NOTA: cuando creamos un archivo, debemos implementar el open, esto es como si tuviésemos el archivo abierto y editando. Nunca se debe olvidar hacer el close (cerrar) ya que con esto se garantiza la integridad del dato ya que guarda el archivo.

La letra “r” sirve para leer la información que se encuentra en el  archivo txt.

Una vez que la información es agregada una parte importante es poder leer la información que hemos guardado en el archivo txt.

archivo = open("prueba.txt", "r")
texto = archivo.read()
print(texto)
archivo.close()

En la línea número dos hemos escrito texto= archivo.read(). Esta línea es la que nos permite visualizar la información línea por línea.

En el siguiente código, tenemos una pequeña modificación en la línea 2, hemos cambiado la palabra read, por readlines( ), este cambio nos va a permitir visualizar la información dentro de una línea.

archivo = open("prueba.txt", "r")
texto = archivo.readlines()
print(texto)
archivo.close()

Manipulación de Archivos

La manipulación de archivos en Python es una tarea común y esencial para muchos programas. Python proporciona varias funciones y métodos para trabajar con archivos, ya sea para leer, escribir o modificar su contenido. A continuación, te proporcionaré una explicación detallada sobre cómo manipular archivos en Python, junto con ejemplos de código.

Abrir un archivo

Para trabajar con un archivo, primero debes abrirlo. Esto se hace utilizando la función open(), que toma al menos dos argumentos: el nombre del archivo y el modo en que deseas abrirlo.

Modos de apertura:

  • 'r': Leer (modo por defecto). El archivo debe existir.
  • 'w': Escribir. Crea un nuevo archivo o trunca uno existente.
  • 'a': Añadir. Agrega contenido al final del archivo.
  • 'b': Modo binario. Se puede combinar con otros modos (por ejemplo, 'rb' o 'wb').
  • 'x': Crear. Crea un nuevo archivo, fallará si el archivo ya existe.
  • 'r+': El archivo se puede leer y escribir.

Ejemplo de apertura de archivo

# Abrir un archivo en modo lectura
archivo = open('mi_archivo.txt', 'r')

Leer un archivo

Una vez que el archivo está abierto, puedes leer su contenido. Hay varias formas de hacerlo:

  • read(): Lee todo el contenido del archivo.
  • readline(): Lee una línea del archivo.
  • readlines(): Lee todas las líneas y las devuelve como una lista.

El método readlines() en Python se utiliza para leer todas las líneas de un archivo y devolverlas como una lista de cadenas (list). Cada elemento de la lista corresponde a una línea en el archivo, incluyendo el carácter de salto de línea (\n) al final de cada línea (si está presente en el archivo).

# Abrir el archivo en modo lectura
with open('archivo.txt', 'r') as archivo:
    lineas = archivo.readlines()  # Leer todas las líneas del archivo
    print(lineas)

Salida:  ['Hola\n', 'Mundo\n', 'Python es genial\n']

with open('archivo.txt', 'r') as archivo:
    for linea in archivo:
        print(linea.strip())  # Imprimir cada línea sin el salto de línea

Ejemplo de lectura de archivo

# Leer todo el contenido del archivo
contenido = archivo.read()
print(contenido)

# Cerrar el archivo después de leer
archivo.close()

Escribir en un archivo

Para escribir en un archivo, debes abrirlo en modo 'w' o 'a'. Si abres un archivo en modo 'w', se truncará (se borrará su contenido anterior).

Ejemplo de escritura en archivo

# Abrir un archivo en modo escritura
archivo = open('mi_archivo.txt', 'w')

# Escribir contenido en el archivo
archivo.write("Hola, mundo!\\n")
archivo.write("Esta es una segunda línea.\\n")

# Cerrar el archivo después de escribir
archivo.close()

Añadir contenido a un archivo

Si deseas agregar contenido a un archivo existente sin borrar su contenido, debes abrirlo en modo 'a'.

Ejemplo de añadir contenido

# Abrir un archivo en modo añadir
archivo = open('mi_archivo.txt', 'a')

# Añadir contenido al final del archivo
archivo.write("Esta línea se añade al final del archivo.\\n")

# Cerrar el archivo
archivo.close()

Leer un archivo línea por línea

Puedes leer un archivo línea por línea utilizando un bucle for.

Ejemplo de lectura línea por línea

# Abrir un archivo en modo lectura
archivo = open('mi_archivo.txt', 'r')

# Leer el archivo línea por línea
for linea in archivo:
    print(linea.strip())  # strip() elimina los espacios en blanco y saltos de línea

# Cerrar el archivo
archivo.close()

Usar el contexto with

Es recomendable usar el contexto with al trabajar con archivos, ya que se asegura de que el archivo se cierre automáticamente después de que se complete el bloque de código.

Ejemplo usando with

# Usar 'with' para abrir un archivo
with open('mi_archivo.txt', 'r') as archivo:
    contenido = archivo.read()
    print(contenido)

Manejo de excepciones

Es importante manejar excepciones al trabajar con archivos, ya que pueden ocurrir errores (por ejemplo, si el archivo no existe).

Ejemplo de manejo de excepciones

try:
    with open('mi_archivo.txt', 'r') as archivo:
        contenido = archivo.read()
        print(contenido)
except FileNotFoundError:
    print("El archivo no fue encontrado.")
except IOError:
    print("Ocurrió un error al leer el archivo.")

Manual de Manejo de Archivos TXT y Automatización utilizando Python

  1. Introducción

Python es una herramienta poderosa para trabajar con archivos de texto (TXT), permitiendo desde la lectura y escritura hasta la automatización de procesos como filtrado, transformación y consolidación de datos. Este manual te guiará a través de las operaciones básicas y avanzadas con archivos TXT, así como la automatización de tareas comunes.

2. Operaciones Básicas con Archivos TXT

2.1 Abrir y Leer un Archivo TXT

# Leer un archivo línea por línea
with open('archivo.txt', 'r') as archivo:
    for linea in archivo:
        print(linea.strip())

2.2. Escribir en un Archivo TXT

# Escribir texto en un archivo (sobreescribir contenido)
with open('archivo.txt', 'w') as archivo:
    archivo.write("Este es un ejemplo de escritura en un archivo.\\n")

2.3. Añadir Texto a un Archivo Existente

# Añadir texto a un archivo existente
with open('archivo.txt', 'a') as archivo:
    archivo.write("Esta línea se añade al final del archivo.\\n")

2.4. Leer un Archivo Completo como un String

with open('archivo.txt', 'r') as archivo:
    contenido = archivo.read()
    print(contenido)

3. Automatización de Procesos

3.1. Procesar Varias Líneas de un Archivo TXT

Ejemplo: Filtrar líneas que contienen una palabra específica.

with open('archivo.txt', 'r') as archivo:
    lineas = archivo.readlines()

# Filtrar líneas con la palabra "Python"
lineas_filtradas = [linea for linea in lineas if "Python" in linea]

for linea in lineas_filtradas:
    print(linea.strip())

3.2. Renombrar y Organizar Archivos TXT Automáticamente

import os

# Cambiar nombres de archivos en un directorio
directorio = 'archivos_txt'
for archivo in os.listdir(directorio):
    if archivo.endswith('.txt'):
        nuevo_nombre = f"procesado_{archivo}"
        os.rename(os.path.join(directorio, archivo), os.path.join(directorio, nuevo_nombre))

3.3. Combinar Varios Archivos TXT en uno Solo

import os

directorio = 'archivos_txt'
archivo_salida = 'combinado.txt'

with open(archivo_salida, 'w') as salida:
    for archivo in os.listdir(directorio):
        if archivo.endswith('.txt'):
            with open(os.path.join(directorio, archivo), 'r') as entrada:
                salida.write(entrada.read() + '\\n')

4. Automatización Avanzada

4.1. Transformar Archivos TXT en Formatos Estructurados (CSV)

import csv

# Leer un archivo TXT y convertirlo en CSV
with open('datos.txt', 'r') as txt_file, open('datos.csv', 'w', newline='') as csv_file:
    csv_writer = csv.writer(csv_file)
    for linea in txt_file:
        fila = linea.strip().split('\\t')  # Asume que las columnas están separadas por tabulaciones
        csv_writer.writerow(fila)

4.2. Procesamiento Masivo: Filtrar y Consolidar Información

Ejemplo: Contar palabras específicas en múltiples archivos.

from collections import Counter

directorio = 'archivos_txt'
contador = Counter()

for archivo in os.listdir(directorio):
    if archivo.endswith('.txt'):
        with open(os.path.join(directorio, archivo), 'r') as entrada:
            palabras = entrada.read().split()
            contador.update(palabras)

# Mostrar las 10 palabras más frecuentes
print(contador.most_common(10))

5. Herramientas Adicionales para Automatización

5.1. Uso de Librerías Externas

  • pandas**:** Ideal para manejar datos tabulares extraídos de archivos TXT.
import pandas as pd

# Leer un archivo TXT con pandas
df = pd.read_csv('datos.txt', sep='\\t')  # Usa '\\t' para separar columnas
print(df.head())
  • schedule**:** Para ejecutar procesos automáticamente.
import schedule
import time

# Definir una tarea automatizada
def procesar_archivos():
    print("Procesando archivos TXT...")

# Programar la tarea cada día a las 9:00 AM
schedule.every().day.at("09:00").do(procesar_archivos)

while True:
    schedule.run_pending()
    time.sleep(1)

6. Consejos y Buenas Prácticas

6.1 Manejo de errores: Usa try-except para manejar errores al abrir archivos.

try:
    with open('archivo_inexistente.txt', 'r') as archivo:
        contenido = archivo.read()
except FileNotFoundError:
    print("El archivo no existe.")

7. Conclusión

Con Python, puedes simplificar y automatizar procesos relacionados con archivos TXT, desde tareas básicas como lectura y escritura hasta operaciones avanzadas como combinar y transformar datos. Este manual es un punto de partida; explora y adapta los ejemplos para tus necesidades específicas.

Built with LogoFlowershow