WindowsMacSoftwareConfiguraciónSeguridadProductividadLinuxAndroidRendimientoConfiguraciónApple Todo

Cómo leer y escribir archivos en Python

Editado 3 Hace unas semanas por ExtremeHow Equipo Editorial

PythonManejo de ArchivosOperaciones de Entrada/SalidaWindowsMacLinuxFundamentos de ProgramaciónIntermedioGestión de datosSecuencias de comandos

Cómo leer y escribir archivos en Python

Traducción actualizada 3 Hace unas semanas

Aprender a leer y escribir archivos en Python es una habilidad esencial para cualquier programador. Los archivos contienen datos que pueden ser leídos por un programa o modificados y guardados para su uso posterior. En Python, el manejo de archivos es simple e intuitivo. Esta guía te introducirá a los conceptos básicos y avanzados del manejo de archivos en Python utilizando la función incorporada open. Exploraremos diferentes modos de archivo, manejo de errores y varios escenarios de uso común.

Entender las operaciones de archivos

Antes de entrar en operaciones de archivos en Python, es importante entender lo que significa leer y escribir un archivo.

Abrir un archivo

Para leer o escribir un archivo en Python, primero debes abrirlo. Python tiene una función incorporada open. Esta función abre un archivo, devolviendo un objeto de archivo. La sintaxis de la función open es:

file_object = open(filename, mode)

Aquí, filename es el nombre del archivo a ser abierto y mode indica el propósito para el que se abre el archivo.

Modo de archivo

Los modos de archivo determinan cómo se usará el archivo una vez que se haya abierto. Aquí hay algunos modos de archivo comunes:

Leyendo desde un archivo

Una vez que un archivo está abierto en el modo apropiado, puedes leer su contenido usando métodos como read(), readline(), y readlines().

Usando el método read()

El método read() lee todo el contenido del archivo y lo devuelve como una cadena.

# Abre el archivo en modo de lectura
file_object = open("example.txt", "r")
# Lee todo el contenido
content = file_object.read()
# Imprime el contenido
print(content)
# Cierra el archivo
file_object.close()

Usando el método readline()

El método readline() lee una línea del archivo y la devuelve como una cadena.

# Abre el archivo
file_object = open("example.txt", "r")
# Lee la primera línea
first_line = file_object.readline()
# Imprime la primera línea
print(first_line)
# Cierra el archivo
file_object.close()

Usando el método readlines()

Este método lee todas las líneas del archivo y las devuelve como una lista de cadenas. Cada cadena representa una línea en el archivo.

# Abre el archivo
file_object = open("example.txt", "r")
# Lee todas las líneas
lines = file_object.readlines()
# Imprime todas las líneas
for line in lines:
    print(line)
# Cierra el archivo
file_object.close()

Escribiendo en un archivo

Para escribir datos en un archivo, debes abrirlo en uno de los modos de escritura ('w', 'a', o 'x'). Los métodos write() y writelines() se usan para escribir datos en un archivo.

Usando el método write()

El método write() escribe una sola cadena en un archivo.

# Abre el archivo en modo de escritura
file_object = open("example.txt", "w")
# Escribe datos en el archivo
file_object.write("Este es un texto de ejemplo.")
# Cierra el archivo
file_object.close()

Usando el método writelines()

El método writelines() escribe una lista de cadenas en un archivo.

# Abre el archivo en modo de anexo
file_object = open("example.txt", "a")
# Lista de cadenas
lines = ["Primera línea\n", "Segunda línea\n", "Tercera línea\n"]
# Escribe líneas en el archivo
file_object.writelines(lines)
# Cierra el archivo
file_object.close()

Cerrando un archivo

Es importante cerrar el archivo después de usarlo. El método close() se usa para este propósito. Libera los recursos usados por el archivo.

# Cerrando correctamente un archivo
file_object.close()

También puedes usar la declaración with para abrir un archivo. Este enfoque asegura que el archivo se cierre automáticamente, incluso si se genera una excepción. Aquí hay un ejemplo:

with open("example.txt", "r") as file_object:
    content = file_object.read()
    print(content)
# No hay necesidad de cerrar el archivo explícitamente

Manejo de excepciones de archivo

Cuando trabajas con archivos, pueden ocurrir errores. Manejar estos errores de manera adecuada mejora la robustez de tu programa. Python proporciona un mecanismo para manejar tales excepciones usando las declaraciones try y except.

try:
    with open("example.txt", "r") as file_object:
        content = file_object.read()
        print(content)
except FileNotFoundError:
    print("El archivo no existe.")
except IOError:
    print("Ocurrió un error al acceder al archivo.")

En este ejemplo, si el archivo no existe o no se puede acceder, se muestra un mensaje y el programa continúa su ejecución sin fallar.

Trabajando con diferentes tipos de archivos

Con Python, puedes trabajar con diferentes tipos de archivos, incluidos archivos de texto, archivos binarios y otros. El enfoque puede variar ligeramente según el tipo de archivo:

Archivos binarios

Los archivos binarios contienen datos en formato binario. Para manejar archivos binarios, ábrelos en modo binario añadiendo 'b' al nombre del archivo (por ejemplo, 'rb' para modo de lectura binario).

with open("image.jpg", "rb") as file_object:
    content = file_object.read()
    # Procesar contenido binario

Archivos CSV

Los archivos CSV (Valores Separados por Comas) se usan para almacenar datos tabulares. Python proporciona el módulo csv para manejar archivos CSV.

import csv
# Leyendo CSV
with open("data.csv", "r") as file_object:
    csv_reader = csv.reader(file_object)
    for row in csv_reader:
        print(row)
# Escribiendo en CSV
with open("output.csv", "w", newline='') as file_object:
    csv_writer = csv.writer(file_object)
    csv_writer.writerow(["Encabezado1", "Encabezado2"])
    csv_writer.writerow(["Valor1", "Valor2"])

Archivos JSON

JSON (Notación de Objetos de JavaScript) es un formato popular para almacenar e intercambiar datos. El módulo json de Python hace que el manejo de archivos JSON sea fácil.

import json
# Leyendo JSON
with open("data.json", "r") as file_object:
    data = json.load(file_object)
    print(data)
# Escribiendo JSON
with open("output.json", "w") as file_object:
    json.dump({"clave": "valor"}, file_object)

Operaciones avanzadas de archivo

Búsqueda y recursividad

El método seek() cambia la posición del objeto archivo, permitiéndote ir a diferentes ubicaciones en el archivo.

# Usando seek para cambiar la posición del archivo
with open("example.txt", "r") as file_object:
    file_object.seek(5)
    content = file_object.read()
    print(content)

También puedes usar el objeto archivo como un iterador para iterar sobre las líneas.

with open("example.txt", "r") as file_object:
    for line in file_object:
        print(line)

Resumen

El manejo de archivos en Python es una habilidad básica que permite a los programadores almacenar, recuperar y manipular datos de manera efectiva. Esta guía cubrió los conceptos básicos de la lectura y escritura de archivos, exploró varios modos de archivo y mostró cómo manejar excepciones. Además, proporcionó métodos para trabajar con varios tipos de archivos como texto, binario, CSV y JSON. Con estas herramientas, puedes gestionar archivos de manera eficiente en tu programa de Python, asegurando que los datos se procesen de manera correcta y segura.

Si encuentras algo incorrecto en el contenido del artículo, puedes


Comentarios