El 30 de mayo de 2014, 0:23, Manuel A. Estevez Fernandez <stvz...@gmail.com> escribió:
> 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. [#######] > Seguramente sólo se usan unos pocos tipos de monedas en las facturas, por lo que puedes usar ése campo para separar las líneas de detalle: pat_detalle = re.compile("(.*?Total:.*?\d+(USD|Euros)") En cuanto a los saltos de página, si son así puedes suponer que empiezan por "- Continue" y acaban por "\d+\]" para poder ignorarlos en las búsquedas: pat_remove = re.compile("- Continue -.*?\d+\]") texto_limpio = pat_remove.sub("", texto) Tendrás que probar cuál es el patrón RE que mejor funciona. > > > 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 <pych...@gmail.com> escribió: > > >> >> >> El 29 de mayo de 2014, 19:03, Manuel A. Estevez Fernandez < >> stvz...@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@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@python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > Python-es@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@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/