SQL a texto sin formato - Python Programming Exercise

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 perfecto para practicar el manejo de archivos, la manipulación de cadenas y la extracción de datos en Python. Al implementar este programa, obtendrás experiencia práctica en el manejo de operaciones de archivos, manipulación de cadenas y extracción de datos 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 manipulación de cadenas y la extracción de datos, 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

SQL A Texto Sin Formato

 Objectivo

Desarrollar un programa Python para analizar comandos SQL INSERT y extraer sus datos en líneas de texto independientes, de la siguiente manera. Si el archivo de entrada contiene estas tres líneas:

INSERT INTO people (name, address, age) VALUES ("smith, pedro", "your street", 23);

INSERT INTO people (name, address, age) VALUES ("juan", "calle cinco, 6", 24);

INSERT INTO cities (code, name) VALUES ("a", "alicante");

El archivo resultante debe tener en cada línea el nombre de un campo, seguido de dos puntos y su valor. Además, cada registro debe ir precedido del nombre de la tabla y seguido de una línea en blanco, de esta manera:

Tabla: people

name: smith, pedro address: your street age: 23

Tabla: people

name: juan address: calle cinco, 6 age: 24

Tabla: cities

code: a name: alicante

 Ejemplo de ejercicio de Python

 Copiar código Python
# Python program to parse SQL INSERT commands and extract data

import re

def parse_sql_insert(input_file, output_file):
    """
    Parses SQL INSERT commands from an input file and writes the extracted data to an output file.
    """
    try:
        with open(input_file, 'r', encoding='utf-8') as infile, open(output_file, 'w', encoding='utf-8') as outfile:
            for line in infile:
                # Match the INSERT INTO statement
                match = re.match(r"INSERT INTO (\w+) \((.+?)\) VALUES \((.+?)\);", line.strip())
                if match:
                    table_name = match.group(1)  # Extract table name
                    fields = match.group(2).split(", ")  # Extract field names
                    values = match.group(3).split(", ")  # Extract values
                    
                    # Clean up values (removing quotes)
                    values = [value.strip('"') for value in values]
                    
                    # Write the table name
                    outfile.write(f"Table: {table_name}\n\n")
                    
                    # Write the fields and their corresponding values
                    for field, value in zip(fields, values):
                        outfile.write(f"{field}: {value}\n")
                    
                    outfile.write("\n")  # Blank line between records
        print(f"Extracted data written to '{output_file}'.")
    except FileNotFoundError:
        print(f"Error: The input file '{input_file}' was not found.")
    except Exception as e:
        print(f"Error: {str(e)}")


# Example usage
if __name__ == "__main__":
    # File paths
    input_file = "insert_commands.sql"       # Input file containing SQL INSERT commands
    output_file = "parsed_output.txt"        # Output file for extracted data

    parse_sql_insert(input_file, output_file)

 Output

Input (insert_commands.sql):

INSERT INTO people (name, address, age) VALUES ("smith, pedro", "your street", 23);
INSERT INTO people (name, address, age) VALUES ("juan", "calle cinco, 6", 24);
INSERT INTO cities (code, name) VALUES ("a", "alicante");

Output (parsed_output.txt):

Table: people

name: smith, pedro
address: your street
age: 23

Table: people

name: juan
address: calle cinco, 6
age: 24

Table: cities

code: a
name: alicante

 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.

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

  •  Mostrar datos de archivo

    En este ejercicio, desarrollarás un programa en Python para leer y mostrar el contenido de un archivo de texto. Este ejercicio es perfecto para practicar el ma...

  •  TextToHTML con integración de archivos

    En este ejercicio, desarrollarás un programa en Python para mejorar la clase TextToHTML añadiendo la capacidad de guardar sus resultados en un archivo de texto. Este ...