python处理pdf提取指定数据_从.pdf中提取特定数据并保存在Excel fi中

本文介绍如何使用Python从PDF文件中提取客户信息、账单号、价格、到期日和付款方式,然后将这些数据保存到Excel文件。
摘要由CSDN通过智能技术生成

每个月我都需要从.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中的文本。

我要提取这个信息:客户,帐单号码,价格,到期日和付款方式。

客户名称始终处于关闭状态“电子邮件:buendialogistica@gmail.com”

账单数量总是下降“FACTURA”

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

到期日期始终为“Vencimientos:”

付款方式总是“Banco:”

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

搜索客户: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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值