[Python-es] Analizar cadena y extraer valores

Chema Cortes pych3m4 en gmail.com
Jue Mayo 29 21:28:09 CEST 2014


El 29 de mayo de 2014, 19:03, Manuel A. Estevez Fernandez <stvzito en gmail.com
> escribió:

> Saludos a todos
>
> Tengo la siguiente necesidad:
>
> Extraer el texto de un archivo PDF (una factura), el cual lo resolví
> utilizando pyPdf, sin embargo el texto texto resultante de la lectura, es
> una sola linea de texto de la cual debo extraer.
> El patrón de la información siempre es el mismo:
>
> *COMMERCIAL INVOICESeller*[Datos]*Consignee*[Datos]*Notify Party*[Datos]*Departure
> Date:*        [datos]*Delivery and Payment Term*[Datos]*Country of origin*
> [Datos]*Invoice No. & Date*[Datos]*PO no. & Date*[Datos]*Buyer Reference
> NO & Date*[Datos]*Buyer*[Datos]*Remarks*[Datos]*Other References*[Datos*]Goods
> description Model code
>   Quantity              Unit priceAmount*[descripcion]
>  [Modelo]             [Cantidad]         [PrecioUnitario][Monto]   *Total:
> *[Descripcion]                 [Cantidad]
> [Importe][Moneda][descripcion]                [Modelo]
> [Cantidad]         [PrecioUnitario][Monto]   *Total: *[Descripcion]
>           [Cantidad]         [Importe][Moneda][descripcion]
>  [Modelo]             [Cantidad]         [PrecioUnitario][Monto]
> *Total: *[Descripcion]                 [Cantidad]
> [Importe][Moneda]*/////////END OF DATA//////////////*
>
> Las que se encuentran en negritas son los tags que se repiten de forma
> fija.
>
> Sería de mucha ayuda si me pudieran indicar cuáles herramientas utilizar o
> algún método general para realizar este proceso.
>

Lo que necesitas no sencillo. Según la variedad de facturas, necesitarás
muchas horas de prueba/error hasta lograr un proceso depurado que te
extraiga la información limpia.

Yo empezaria con el módulo re (expresiones regulares) e intentaría dividir
el problema en partes.

Algo muy sencillo para obtener todo el texto delimitado por TAGs sería:

import re
pat = re.compile("TAG1(.*?)TAG2(.*?)//////END OF DATA////")

data = pat.findall(texto)




>
> Gracias de antemano.
>
> by:
>
> ISC. Manuel Alejandro Estévez Fernández
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
Buscador Python Hispano: http://ch3m4.org/python-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140529/b3804b6d/attachment.html>


Más información sobre la lista de distribución Python-es