使用python解析pdf

Posted

技术标签:

【中文标题】使用python解析pdf【英文标题】:parse a pdf using python 【发布时间】:2013-09-16 07:36:49 【问题描述】:

我有一个 pdf 文件。它包含四列,所有页面都没有网格线。它们是学生的标志。

我想对此分布进行一些分析。(直方图、折线图等)。

我想将此 pdf 文件解析为电子表格或 html 文件(然后我可以很容易地对其进行解析)。

pdf的链接是:

Pdf

这是一份公开文件,可在此域上向任何人公开使用。

注意:我知道这可以通过将文件从 adobe reader 导出为文本,然后将其导入 Libre Calc 或 Excel 来完成。但我想使用 python 脚本来做到这一点。

请帮我解决这个问题。 眼镜: Windows 7的 Python 2.7

【问题讨论】:

是否必须解析为PDF?例如,我可以使用我最喜欢的文本编辑器从 PDF 粘贴并进行一些替换,从而将您的数据创建为制表符分隔:pastebin.com/ih6tKMpH 是的!我知道我们可以通过从 adobe 将其导出为文本然后将其导入 excel 来做到这一点。但我想用脚本来做! 相关:***.com/questions/1848464/… 您是从 pdf 中复制数据并粘贴的吗?或者您是否将数据从某个 pdf 阅读器导出为文本? @肖恩·约翰逊 我实际上只是将它从 PDF 复制并粘贴到我的文本编辑器中,并运行了一些替换以使字段以制表符分隔以便于解析。 【参考方案1】:

使用PyPDF2:

from PyPDF2 import PdfFileReader

with open('CT1-All.pdf', 'rb') as f:
    reader = PdfFileReader(f)
    contents = reader.getPage(0).extractText().split('\n')
    pass

当你打印contents时,它会是这个样子(我这里已经修好了):

[u'Serial NoRoll NoNameCT1 Marks (50)111MA20026KARADI KALYANI212AR10029MUKESH K
MAR5', u'312MI31004DEEPAK KUMAR7', u'413AE10008FADKE PRASAD DIPAK27', u'513AE10
22RAHUL DUHAN37', u'613AE30005HIMANSHU PRABHAT26.5', u'713AE30019VISHAL KUMAR39
, u'813AG10014HEMANT17', u'913AG10028SHRESTH KR KRISHNA37.51013AG30009HITESH ME
RA33.5', u'1113AG30023RACHIT MADHUKAR40.5', u'1213AR10002ACHARY SUDHEER11', u'1
13AR10004AMAN ASHISH20.5', u'1413AR10008ANKUR44', u'1513AR10010CHUKKA SHALEM RA
U11.5', u'1613AR10012DIKKALA VIJAYA RAGHAVA20.5', u'1713AR10014HRISHABH AMRODIA
1', u'1813AR10016JAPNEET SINGH CHAHAL19.5', u'1913AR10018K VIGNESH42.5', u'2013
R10020KAARTIKEY DWIVEDI49.5', u'2113AR10024LAKSHMISRI KEERTI MANNEY49', u'2213A
10026MAJJI DINESH9.5', u'2313AR10028MOUNIKA BHUKYA17.5', u'2413AR10030PARAS PRA

【讨论】:

以上是关于使用python解析pdf的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 解析 PDF - 提取格式化文本和纯文本 [关闭]

用python解析pdf中的文本与表格pdfplumber的安装与使用

使用python处理pdf中的表格

[转]Python 解析 PDF 文本和表格的四大方法介绍

Python Tika 无法从 url 解析 pdf

请问各位大神,使用python解析PDF文件是出现WARNING:root:Cannot locate objid=66,怎么解决?