Guardar datos en un archivo binario - Python Programming Exercise

En este ejercicio, desarrollarás un programa en Python que solicita al usuario que ingrese su nombre, edad (como byte) y año de nacimiento (como entero), y luego guarda esta información en un archivo binario. Este ejercicio es perfecto para practicar el manejo de archivos, la serialización de datos y la entrada del usuario en Python. Al implementar este programa, obtendrás experiencia práctica en el manejo de operaciones de archivos, serialización de datos y entrada del usuario en Python. Este ejercicio no solo refuerza tu comprensión del manejo de archivos, sino que también te ayuda a desarrollar prácticas de codificación eficientes para gestionar las interacciones con el usuario. Además, este ejercicio proporciona una excelente oportunidad para explorar la versatilidad de Python en aplicaciones del mundo real. Al trabajar con el manejo de archivos, la serialización de datos y la entrada del usuario, aprenderás a estructurar tu código de manera eficiente, lo cual es una habilidad crucial en muchos escenarios de programación. Este ejercicio también te anima a pensar críticamente sobre cómo estructurar tu código para la legibilidad y el rendimiento, convirtiéndolo en una valiosa adición a tu portafolio de programación. Ya seas un principiante o un programador experimentado, este ejercicio te ayudará a profundizar tu comprensión de Python y mejorar tus habilidades para resolver problemas.

 Categoría

Administrar archivos

 Ejercicio

Guardar Datos En Un Archivo Binario

 Objectivo

Desarrollar un programa Python que solicite al usuario que ingrese su nombre, edad (como byte) y año de nacimiento (como número entero) y luego guardar esta información en un archivo binario.

Además, implementar un lector para verificar que los datos se hayan escrito correctamente en el archivo.

 Ejemplo de ejercicio de Python

 Copiar código Python
import struct

def save_data_to_binary(file_name):
    """
    Prompts the user for their name, age, and birth year, and saves this data into a binary file.
    
    Parameters:
    file_name (str): The name of the binary file to save the data.
    """
    # Get user input
    name = input("Enter your name: ")
    age = int(input("Enter your age (as a byte): "))
    birth_year = int(input("Enter your birth year: "))
    
    # Ensure the age is within byte range (0-255)
    if not (0 <= age <= 255):
        print("Age must be between 0 and 255.")
        return
    
    # Open the binary file in write mode
    with open(file_name, 'wb') as file:
        # Pack the data into a binary format
        # Name is encoded as a string, age as a byte (B), birth year as an integer (I)
        # '20s' ensures the name is stored as a string of up to 20 characters (padded with null bytes)
        data = struct.pack('20s B I', name.encode('utf-8'), age, birth_year)
        file.write(data)
    
    print(f"Data has been successfully written to {file_name}.")

def read_data_from_binary(file_name):
    """
    Reads the binary file and prints the saved data.
    
    Parameters:
    file_name (str): The name of the binary file to read the data from.
    """
    try:
        with open(file_name, 'rb') as file:
            # Read the binary data
            data = file.read()
            
            # Unpack the data: '20s B I' corresponds to a string (20 chars), a byte, and an integer
            name, age, birth_year = struct.unpack('20s B I', data)
            
            # Decode name from bytes and strip the null bytes
            name = name.decode('utf-8').rstrip('\x00')
            
            print(f"Name: {name}")
            print(f"Age: {age}")
            print(f"Birth Year: {birth_year}")
            
    except FileNotFoundError:
        print(f"The file '{file_name}' was not found.")
    except Exception as e:
        print(f"An error occurred: {e}")

# Main program execution
if __name__ == "__main__":
    file_name = 'user_data.bin'
    
    # Save the data to binary file
    save_data_to_binary(file_name)
    
    # Read and verify the saved data
    print("\nReading the saved data...\n")
    read_data_from_binary(file_name)

 Output

User Input:

Enter your name: John Doe
Enter your age (as a byte): 30
Enter your birth year: 1994

Program Output After Saving Data:

Data has been successfully written to user_data.bin.

Program Output After Reading Data:

Reading the saved data...
Name: John Doe
Age: 30
Birth Year: 1994

 Comparte este ejercicio de Python

 Más Ejercicios Programación Python de Administrar archivos

¡Explora nuestro conjunto de ejercicios de programación Python! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de Python. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en Python.