Vertedero - Python Programming Exercise

En este ejercicio, desarrollarás un programa en Python para crear una utilidad de "volcado": un visor hexadecimal que muestra el contenido de un archivo, con 16 bytes en cada fila y 24 filas en cada pantalla. Este ejercicio es perfecto para practicar el manejo de archivos, la manipulación de bytes y el formato de cadenas en Python. Al implementar este programa, obtendrás experiencia práctica en el manejo de operaciones de archivos, manipulación de bytes y formato de cadenas 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, manipulación de bytes y formato de cadenas, 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

Vertedero

 Objectivo

Desarrollar un programa Python para crear una utilidad de "dump": un visor hexadecimal que muestra el contenido de un archivo, con 16 bytes en cada fila y 24 filas en cada pantalla. El programa debe pausarse después de mostrar cada pantalla antes de mostrar las siguientes 24 filas.

En cada fila, los 16 bytes deben mostrarse primero en formato hexadecimal y luego como caracteres. Los bytes con un código ASCII menor a 32 deben mostrarse como un punto en lugar del carácter no imprimible correspondiente.

Puede buscar "editor hexadecimal" en Google Images para ver un ejemplo de la apariencia esperada.

 Ejemplo de ejercicio de Python

 Copiar código Python
# Python program to create a hex viewer for files

def hex_viewer(file_path):
    try:
        # Open the file in binary read mode
        with open(file_path, 'rb') as file:
            # Row and screen counters
            row_count = 0
            screen_count = 0

            while True:
                # Read 16 bytes at a time
                chunk = file.read(16)

                # Break the loop if no more data is left
                if not chunk:
                    break

                # Display the offset (row start position)
                print(f"{row_count * 16:08X}: ", end="")

                # Display the chunk in hexadecimal format
                hex_representation = " ".join(f"{byte:02X}" for byte in chunk)
                print(f"{hex_representation:<48}", end=" ")

                # Display the chunk as ASCII characters
                ascii_representation = "".join(
                    chr(byte) if 32 <= byte <= 126 else "." for byte in chunk
                )
                print(ascii_representation)

                # Increment row count
                row_count += 1

                # Pause after displaying 24 rows (one screen)
                if row_count % 24 == 0:
                    screen_count += 1
                    input(f"-- Screen {screen_count} (Press Enter to continue) --")

            # Final message after the dump is complete
            print("-- End of file --")

    except FileNotFoundError:
        print(f"Error: The file '{file_path}' was not found.")
    except Exception as e:
        print(f"Error: {str(e)}")


# Example usage
hex_viewer("example_file.bin")

 Output

Example Input File (example_file.bin):

Binary content (can be any type of file):

Hello, World! This is a test file.
1234567890abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()

Example Output:

00000000: 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 20 54 68  Hello, World! Th
00000010: 69 73 20 69 73 20 61 20 74 65 73 74 20 66 69 6C  is is a test fil
00000020: 65 2E 0A 31 32 33 34 35 36 37 38 39 30 61 62 63  e..1234567890abc
00000030: 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73  defghijklmnopqrs
00000040: 74 75 76 77 78 79 7A 0A 41 42 43 44 45 46 47 48  tuvwxyz.ABCDEFGH
00000050: 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58  IJKLMNOPQRSTUVWX
00000060: 59 5A 21 40 23 24 25 5E 26 2A 28 29              YZ!@#$%^&*()
-- Screen 1 (Press Enter to continue) --
-- End of file --

 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.

  •  Filtro de texto

    En este ejercicio, desarrollarás un programa en Python para crear una utilidad que censure archivos de texto. Este ejercicio es perfecto para practicar el mane...

  •  SQL a texto sin formato

    En este ejercicio, desarrollarás un programa en Python para analizar comandos SQL INSERT y extraer sus datos en líneas de texto separadas. Este ejercicio es pe...

  •  Visor de imágenes PGM

    En este ejercicio, desarrollarás un programa en Python para crear una utilidad que lea y muestre imágenes en formato PGM, que es una versión de los formatos de imagen...

  •  Visor BMP de consola V2

    En este ejercicio, desarrollarás un programa en Python para crear una utilidad que muestre un archivo BMP de 72x24 en la consola. Este ejercicio es perfecto pa...

  •  Guardar datos en un archivo de texto

    En este ejercicio, desarrollarás un programa en Python para recopilar múltiples oraciones del usuario (continuando hasta que el usuario presione Enter sin escribir na...

  •  Agregar contenido a un archivo de texto

    En este ejercicio, desarrollarás un programa en Python que solicita al usuario que ingrese múltiples oraciones, deteniéndose cuando presionen Enter sin escribir nada....