Este archivo README es para explicar paso a paso el codigo de como , lo que facilita que los usuarios comprendan la funcionalidad y lautilicen manera eficaz.
Una herramienta de interfaz de línea de comandos (CLI) para extraer información de archivos PDF y XML. La herramienta puede identificar números de referencia en archivos PDF y extraer datos de facturas de archivos XML.
- CLI de File Extractor
- Tabla de contenido
- Instalación
- Uso
- Opciones de CLI
- Comandos de ejemplo
- Cómo funciona
- Clase FileExtractor
- Requisitos
- Dependencias
- Salida de ejemplo
- Extracción de ID de PDF
- Extracción de factura XML
- Licencia
- Crear un entorno virtual:
python -m venv env
- Activar el entorno virtual:
- En Windows:
.\env\Scripts\activate
- En macOS/Linux:
source env/bin/activate
- Instalar dependencias:
pip install -r requirements.txt
Para ejecutar la CLI de File Extractor, use el siguiente comando:
python app.py -p "./data-storage/"
Para la ejecucion de este CLI, debe crear la siguientes extructura de carpetas:
- data-storage
- xml
data-storage
: Es la carpeta madre que contiene pdf
y xml
Para crear esta estructura de carpetas en Windows y macOS, puedes usar los siguientes comandos:
mkdir data-storage\data-storage\pdf data-storage\xml
mkdir -p data-storage/pdf data-storage/xml
Ambos comandos crearán la estructura de carpetas indicada en una sola línea.
Deben de agregar los archivos correspondiente de a las facturas en formato pdf
y xml
en sus carpetas correspondientes.
Ademas debe crear dentro de la raiz de data-storage
la carpeta csv
que es la carpeta destino para la exportacion de las fracturas formato .csv
.
-p
o--path
: especifica el directorio donde se almacenan los archivos PDF y XML. Este argumento es obligatorio.
- Extraer identificadores de PDF:
- Ejecute la herramienta, seleccione la opción
1
y extraerá los números de referencia de los archivos PDF dentro del directorio especificado.
- Extraer facturas XML:
- Ejecute la herramienta, seleccione la opción
2
y procesará los archivos XML, mostrando la información de la factura extraída en formato tabular.
- Exportar fractura a un archivo CSV:
- Ejecute la herramieta, seleccion la opcion
3
y exportara el resultado en un archivo CSV.
- Salir del programa:
- Seleccione la opción
4
para salir de la CLI.
El programa tiene dos componentes principales:
- CLI principal (
app.py
):
- Proporciona un menú para que el usuario elija opciones para extraer datos de archivos PDF o XML.
- Utiliza la biblioteca
argparse
para manejar argumentos de línea de comandos. - Utiliza la biblioteca
tabulate
para formatear y mostrar los datos extraídos.
- Clase FileExtractor (
extractor.py
):
- Maneja la lógica de extracción de archivos
pdf
yxml
.
- Metodo export_to_csv (
csv_exporter.py
):
- Maneja la lógica de expotar las facturas en formato
.csv
.
La clase FileExtractor
contiene dos métodos:
extract_pdf_ids()
:
- Busca patrones de "Número de referencia" en archivos PDF.
- Utiliza la biblioteca
PyPDF2
para leer archivos PDF y expresiones regulares para identificar números de referencia. - Devuelve una lista de números de referencia extraídos.
extract_xml_invoices()
:
- Analiza archivos XML para extraer información general y de proveedores de las facturas.
- Utiliza la biblioteca
xml.etree.ElementTree
para el análisis de XML. - Devuelve una lista de datos de facturas extraídos, formateados como diccionarios.
- Python 3.x
- Bibliotecas requeridas (instaladas mediante
requirements.txt
): PyPDF2
: para lectura de PDF.tabulate
: para salida formateada en la terminal.xml.etree.ElementTree
: para análisis de XML (parte de la biblioteca estándar de Python).
Las dependencias se administran en el archivo requirements.txt
. Asegúrese de haber instalado todas las dependencias mediante:
pip install -r requirements.txt
--- CLI de File Extractor ---
1. Extraer ID de PDF
2. Extraer información de factura XML
3. Exportar facturas a CSV
4. Salir
Seleccione una opción (1-4): 1
ID de PDF extraídos (EJEMPLOS):
- 12345
- 67890
--- CLI de File Extractor ---
1. Extraer ID de PDF
2. Extraer información de factura XML
3. Exportar facturas a CSV
3. Salir
Seleccione una opción (1-4): 2
Facturas procesadas:
+--------+--------------+
| Campo | Valor |
+--------+--------------+
| Ref | 0001 |
| Tipo | Venta |
| Fecha | 2024-01-01 |
| Moneda | USD |
| Proveedor | ABC Corp |
| CIF | B12345678 |
| Correo electrónico | abc@example.com |
+--------+--------------+