Fusionar y ordenar archivos - Python Programming Exercise

En este ejercicio, desarrollarás un programa en Python para fusionar el contenido de varios archivos de texto en un solo archivo y ordenar el contenido alfabéticamente o numéricamente, dependiendo del tipo de archivo. Este ejercicio es perfecto para practicar el manejo de archivos, la clasificación de datos y el manejo de errores en Python. Al implementar este programa, obtendrás experiencia práctica en el manejo de operaciones de archivos, clasificación de datos y manejo de errores 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 clasificación de datos y el manejo de errores, 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

Técnicas de gestión de la memoria

 Ejercicio

Fusionar Y Ordenar Archivos

 Objectivo

Desarrollar un programa Python que fusione el contenido de varios archivos de texto en un solo archivo y ordene el contenido alfabéticamente o numéricamente, según el tipo de archivo. El programa debe leer varios archivos de entrada, combinar su contenido y escribir el resultado ordenado en un nuevo archivo. Asegúrese de que el programa gestione los distintos tipos de archivos de forma adecuada e incluya el manejo de errores en caso de que no se encuentre el archivo o haya problemas de permisos.

 Ejemplo de ejercicio de Python

 Copiar código Python
import os

def sort_content(file_contents, is_numeric=False):
    """Sorts the content of the file. If the content is numeric, it sorts numerically; else, alphabetically."""
    try:
        if is_numeric:
            # Sort numerically by converting content to integers
            file_contents.sort(key=lambda x: float(x.strip()))
        else:
            # Sort alphabetically
            file_contents.sort()
    except ValueError:
        print("Error: Could not sort numerically. Ensure all lines are numeric.")
        raise
    return file_contents

def read_file(file_name):
    """Reads the content of a file and returns it as a list of lines."""
    try:
        with open(file_name, 'r') as file:
            content = file.readlines()
        return content
    except FileNotFoundError:
        print(f"Error: The file '{file_name}' was not found.")
        raise
    except PermissionError:
        print(f"Error: Permission denied to read the file '{file_name}'.")
        raise

def merge_and_sort(files, output_file, is_numeric=False):
    """Merges the content of multiple files, sorts it, and writes the result to an output file."""
    all_contents = []
    
    # Read contents from all input files
    for file in files:
        try:
            content = read_file(file)
            all_contents.extend(content)
        except (FileNotFoundError, PermissionError):
            continue  # Skip files that couldn't be read

    # Sort the content
    sorted_content = sort_content(all_contents, is_numeric)
    
    # Write the sorted content to the output file
    try:
        with open(output_file, 'w') as out_file:
            out_file.writelines(sorted_content)
        print(f"Successfully written the sorted content to '{output_file}'.")
    except PermissionError:
        print(f"Error: Permission denied to write to the file '{output_file}'.")
        raise

def main():
    """Main function to handle input and output files, and sorting type (numeric or alphabetical)."""
    # Input: List of files to be merged and sorted
    files = input("Enter the file names to merge (comma separated): ").split(',')
    files = [file.strip() for file in files]  # Clean up the file names

    # Output: Name of the output file
    output_file = input("Enter the name of the output file: ").strip()

    # Determine whether the content should be sorted numerically or alphabetically
    file_type = input("Should the content be sorted numerically (yes/no)? ").strip().lower()
    is_numeric = file_type == 'yes'

    try:
        merge_and_sort(files, output_file, is_numeric)
    except Exception as e:
        print(f"An error occurred: {e}")

# Run the program
if __name__ == "__main__":
    main()

 Output

Enter the file names to merge (comma separated): file1.txt, file2.txt, file3.txt
Enter the name of the output file: merged_sorted.txt
Should the content be sorted numerically (yes/no)? yes
Successfully written the sorted content to 'merged_sorted.txt'.

Enter the file names to merge (comma separated): file1.txt, file2.txt, file3.txt
Enter the name of the output file: merged_sorted.txt
Should the content be sorted numerically (yes/no)? no
Successfully written the sorted content to 'merged_sorted.txt'.

 Comparte este ejercicio de Python

 Más Ejercicios Programación Python de Técnicas de gestión de la memoria

¡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.

  •  ArrayList: almacenamiento de puntos

    En este ejercicio, desarrollarás un programa en Python que utiliza una estructura similar a ArrayList (una lista) para almacenar una colección de puntos, donde cada p...

  •  Operaciones de búsqueda de archivos

    En este ejercicio, desarrollarás un programa en Python que busque una palabra o frase específica dentro de un archivo de texto. Este ejercicio es perfecto para...

  •  Implementación de una cola mediante listas

    En este ejercicio, desarrollarás un programa en Python para implementar una cola utilizando una lista. Este ejercicio es perfecto para practicar estructuras de...

  •  Construyendo una pila usando listas

    En este ejercicio, desarrollarás un programa en Python para implementar una pila utilizando una lista. Este ejercicio es perfecto para practicar estructuras de...

  •  Trabajar con colecciones de colas

    En este ejercicio, desarrollarás un programa en Python para demostrar el uso de colecciones de colas. Este ejercicio es perfecto para practicar estructuras de ...

  •  Cola y pila para notación polaca inversa

    En este ejercicio, desarrollarás un programa en Python para evaluar expresiones escritas en Notación Polaca Inversa (RPN) utilizando una cola y una pila. Este ejer...