python处理pdf提取指定数据_python – 从.pdf中提取特定数据并保存在Excel文件中

每个月我都需要从.pdf文件中提取一些数据来创建Excel表格.

我能够将.pdf文件转换为文本,但我不确定如何提取和保存我想要的特定信息.现在我有这个代码:

from pdfminer.pdfinterp import PDFResourceManager,PDFPageInterpreter

from pdfminer.converter import TextConverter

from pdfminer.layout import LAParams

from pdfminer.pdfpage import PDFPage

from cStringIO import StringIO

def convert_pdf_to_txt(path):

rsrcmgr = PDFResourceManager()

retstr = StringIO()

codec = 'utf-8'

laparams = LAParams()

device = TextConverter(rsrcmgr,retstr,codec=codec,laparams=laparams)

fp = file(path,'rb')

interpreter = PDFPageInterpreter(rsrcmgr,device)

password = ""

maxpages = 0

caching = True

pagenos=set()

fstr = ''

for page in PDFPage.get_pages(fp,pagenos,maxpages=maxpages,password=password,caching=caching,check_extractable=True):

interpreter.process_page(page)

str = retstr.getvalue()

fstr += str

fp.close()

device.close()

retstr.close()

return fstr

print convert_pdf_to_txt("FA20150518.pdf")

这就是结果:

>>>

AVILA 72, VALLDOREIX

08197 SANT CUGAT DEL VALLES

(BARCELONA)

TELF: 935441851

NIF: B65512725

EMAIL: buendialogistica@gmail.com

JOSE LUIS MARTINEZ LOPEZ

AVDA. DEL ESLA, 33-D

24240 SANTA MARIA DEL PARAMO

LEON

TELF: 600871170

FECHA

17/06/15

FACTURA

20150518

CLIENTE

43000335

N.I.F.

71548163 B

PÁG.

1

Nº VIAJE

RUTA

DESTINATARIO / REFERENCIA

KG

BULTOS

IMPORTE

2015064210-08/06/15

CERDANYOLA DEL VALLES -> VINAROS

FERRER ALIMENTACION - VINAROZ

2,000.0

1

150,00

TOTAL IMP.

%

IMPORTE

BASE

150,00

150,00

%

21,00

IVA

%

REC.

TOTAL FRA.

(€)

31,50

181,50

Eur

Forma Pago:

Banco:

CONTADO

Vencimientos:

17/06/15

181,50

好的,现在我在变量convert_pdf_to_txt中有了文本.

我想提取这些信息:客户,账单数量,价格,到期日期和支付方式.

客户名称始终显示“EMAIL:buendialogistica@gmail.com”

账单数量总是下降“FACTURA”

价格总是下降两行“Vencimientos:”

截止日期总是下降“Vencimientos:”

支付方式永远落在“银行:”

我想在做这样的事情.如果我可以将此文本转换为列表,可以执行以下操作:

搜索客户:

i=0

while i < lengthlist

if listitem[i] == "EMAIL: buendialogistica@gmail.com"

i+1

Customer = listitem[i]

i = lengthlist

else:

i+1

搜寻账单号码:

i=0

while i < lengthlist

if listitem[i] == "FACTURA"

i+1

Customer = listitem[i]

i = lengthlist

else:

i+1

在我不知道如何在Excel中保存但我确信我可以在论坛中找到示例但首先我需要只提取这些数据.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值