Python: Entrada y salida IO

Python
Python

¡Desbloquea el curso completo!

IA
Ejercicios
Certificado
Entrar

Entrada y salida IO

La entrada y salida de datos (Input/Output o IO) constituye uno de los pilares fundamentales de cualquier programa informático. En Python, estos mecanismos permiten que nuestras aplicaciones interactúen con el mundo exterior, ya sea recibiendo información del usuario, leyendo archivos del sistema o mostrando resultados en pantalla.

El concepto de IO abarca todas las operaciones que involucran el intercambio de información entre el programa y su entorno. Esta comunicación bidireccional es esencial para crear aplicaciones útiles y funcionales que puedan procesar datos reales y proporcionar respuestas significativas.

Fundamentos de la entrada de datos

La función input() representa el método principal para capturar información del usuario en Python. Esta función detiene la ejecución del programa y espera a que el usuario introduzca datos a través del teclado, devolviendo siempre una cadena de texto.

nombre = input("Introduce tu nombre: ")
print(f"Hola, {nombre}")

Es importante comprender que input() siempre devuelve strings, independientemente de lo que el usuario escriba. Si necesitamos trabajar con números, debemos realizar una conversión de tipos explícita:

edad = int(input("¿Cuántos años tienes? "))
altura = float(input("¿Cuál es tu altura en metros? "))

La validación de entrada se convierte en una práctica esencial cuando trabajamos con datos del usuario. Python nos permite implementar mecanismos robustos para manejar entradas incorrectas:

while True:
    try:
        numero = int(input("Introduce un número entero: "))
        break
    except ValueError:
        print("Error: Debes introducir un número válido")

Salida de datos y formateo

La función print() constituye la herramienta básica para mostrar información en la consola. Aunque aparentemente simple, ofrece múltiples opciones de configuración que permiten controlar el formato de salida:

print("Mensaje simple")
print("Valor:", 42)
print("Múltiples", "valores", "separados")
print("Sin salto de línea", end="")
print(" - continuación en la misma línea")

El formateo de strings en Python ha evolucionado considerablemente. Las f-strings (formatted string literals) representan la sintaxis más moderna y eficiente para crear cadenas formateadas:

nombre = "Ana"
edad = 25
salario = 2500.75

# F-string con formateo básico
mensaje = f"Empleada: {nombre}, Edad: {edad}, Salario: {salario:.2f}€"
print(mensaje)

# F-string con expresiones
print(f"En 5 años tendrás {edad + 5} años")

Las f-strings también permiten especificar formatos numéricos avanzados:

pi = 3.14159265359
print(f"Pi con 2 decimales: {pi:.2f}")
print(f"Pi en notación científica: {pi:.2e}")
print(f"Número con separadores de miles: {1234567:,}")

Manejo de archivos

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

El sistema de archivos proporciona una forma persistente de almacenar y recuperar información. Python ofrece funciones integradas para trabajar con archivos de texto y binarios de manera eficiente.

La función open() es el punto de entrada para todas las operaciones con archivos. Acepta múltiples parámetros que determinan cómo se abrirá y manipulará el archivo:

# Lectura de archivo
with open("datos.txt", "r", encoding="utf-8") as archivo:
    contenido = archivo.read()
    print(contenido)

El uso de context managers (declaración with) garantiza que los archivos se cierren correctamente, incluso si ocurre una excepción durante el procesamiento:

# Escritura de archivo
with open("salida.txt", "w", encoding="utf-8") as archivo:
    archivo.write("Primera línea\n")
    archivo.write("Segunda línea\n")

Modos de apertura de archivos

Los modos de apertura determinan qué operaciones podemos realizar con un archivo y cómo se comportará el programa al acceder a él:

  • Modo lectura ('r'): Permite leer el contenido existente del archivo
  • Modo escritura ('w'): Crea un archivo nuevo o sobrescribe uno existente
  • Modo adición ('a'): Añade contenido al final de un archivo existente
  • Modo lectura/escritura ('r+'): Permite tanto leer como modificar el archivo
# Lectura línea por línea
with open("datos.txt", "r") as archivo:
    for linea in archivo:
        print(linea.strip())  # strip() elimina saltos de línea

# Escritura de múltiples líneas
lineas = ["Primera línea", "Segunda línea", "Tercera línea"]
with open("nuevo_archivo.txt", "w") as archivo:
    for linea in lineas:
        archivo.write(linea + "\n")

Codificación de caracteres

La codificación de caracteres es crucial cuando trabajamos con archivos que contienen texto en diferentes idiomas. Python 3 utiliza UTF-8 como codificación predeterminada, pero es recomendable especificarla explícitamente:

# Lectura con codificación específica
with open("archivo_español.txt", "r", encoding="utf-8") as archivo:
    texto = archivo.read()
    print(texto)

# Manejo de errores de codificación
with open("archivo_problematico.txt", "r", encoding="utf-8", errors="ignore") as archivo:
    contenido = archivo.read()

Procesamiento de datos estructurados

Cuando trabajamos con datos estructurados, Python proporciona herramientas específicas para manejar formatos comunes como CSV:

# Lectura de archivo CSV manualmente
with open("datos.csv", "r") as archivo:
    for linea in archivo:
        campos = linea.strip().split(",")
        print(f"Nombre: {campos[0]}, Edad: {campos[1]}")

El manejo de errores de IO es fundamental para crear aplicaciones robustas que puedan lidiar con situaciones imprevistas:

try:
    with open("archivo_inexistente.txt", "r") as archivo:
        contenido = archivo.read()
except FileNotFoundError:
    print("El archivo no existe")
except PermissionError:
    print("No tienes permisos para acceder al archivo")
except IOError:
    print("Error general de entrada/salida")

La comprensión de estos conceptos fundamentales de entrada y salida proporciona la base necesaria para desarrollar aplicaciones Python que puedan interactuar efectivamente con usuarios y sistemas de archivos, estableciendo los cimientos para técnicas más avanzadas de procesamiento de datos.

Completa Python y certifícate

Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración