[Python-es] Analizar cadena y extraer valores

Manuel A. Estevez Fernandez stvzito en gmail.com
Vie Mayo 30 00:23:22 CEST 2014


Gracias por el aporte Chema.

Estoy empezando a echarle una leída al modulo re, de momento se ocurrio
algo tal vez sencillo y poco elegante para la primera parte de la factura:

_texto.split('Other References')[1].split('Goods description')[0]

E ir sacando la información entre "TAGS".

Aún no comienzo a pensar como extraer, la parte del detalle, ya que el
único tag que encuentro recurrente es Total:  y cuando hay un salto de
pagina me encuentro lo siguiente:

- Continue -_________________________   Signed by    Page No. # of #   Inv
No.  [#######]


Comenzaré con el proceso de Prueba y Error.

Saludos.


by:

ISC. Manuel Alejandro Estévez Fernández



El 29 de mayo de 2014, 14:28, Chema Cortes <pych3m4 en gmail.com> escribió:

>
>
>
> 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
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140529/3bdc001e/attachment.html>


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