我想使用Python和PYPDF包从pdf文件中提取文本。这是我的pdf文件,这是我的代码:
importPyPDF2opened_pdf=PyPDF2.PdfFileReader('test.pdf','rb')p=opened_pdf.getPage(0)p_text=p.extractText()# extract data line by lineP_lines=p_text.splitlines()printP_lines
我的问题是P_lines无法逐行提取数据并导致一个巨大的字符串。我想逐行提取文本进行分析。关于如何改进它的任何建议?谢谢!这是代码返回的字符串:
[u'符合29 CFR 1910.1200(i)和附录D的化学品的成分信息可从供应商处获得。材料安全数据表(MSDS)**信息基于最大的浓缩潜能,因此总量可能超过100%*总水量来源可能包括淡水,采出水和/或循环水0.01271%72.00%7732-18-5水0.00071%4.00%1310-73-2氢氧化钠0.00424%24.00%533-74-4DazomatBiocidePumpcoPlexcide 24L0。 00828%75.00%有机膦酸盐0.00276%25.00%67-56-1甲醇阻垢剂PumpcoPlexaid 6730.00807%30.00%7732-18-5水0.00188%7.00%聚乙氧基化醇表面活性剂0.00753%28.00%9003-06-9铵盐0.00941 %35.00%64742-47-8石油馏出物减摩剂PumpcoPlexslick 9210.05029%60.00%7732-18-5水0.03353%40。00%7647-01-0氯化氢盐酸泵HCL9.84261%100.00%14808-60-7结晶二氧化硅支撑剂泵浦沙子和90.01799%100.00%7732-18-5水成分最大成分HF液体中的浓度(质量%)**最大成分浓度产品编号(CAS#)用途供应商商品名水力压裂液成分:2,608,032总水量(gal)*:7,595真垂直深度(TVD):天然气生产类型:NAD27长/宽投影:32.558525纬度:-97.215242纬度:极油量Gieser单位编号:XTO EnergyOperator名称:42-439-35084API编号:TarrantCounty:Texas状态:12/10/2010破裂日期水力压裂液产品组分信息披露']00%7732-18-5WaterComments HF流体中的最大成分浓度(质量%)**化学添加剂中的最大成分浓度(质量%)**化学摘要服务编号(CAS#)成分目的供应商商品名称液压压裂液成分:2,608,032总水量(加仑)*:7,深度(TVD):天然气生产类型:NAD27长/宽投影:32.558525纬度:-97.215242经度:Ole Gieser Unit D 6H井名称和编号:XTO EnergyOperator Name:42-439-35084API Number:TarrantCounty:TexasState:12/10 / 2010Fracture DateHydraulic压裂液产品成分信息披露']00%7732-18-5WaterComments HF流体中的最大成分浓度(质量%)**化学添加剂中的最大成分浓度(质量%)**化学摘要服务编号(CAS#)成分目的供应商商品名称液压压裂液成分:2,608,032总水量(加仑)*:7,7深度(TVD):天然气生产类型:NAD27长/宽投影:32.558525纬度:-97.215242经度:Ole Gieser Unit D 6H井名称和编号:XTO EnergyOperator Name:42-439-35084API Number:TarrantCounty:TexasState:12/10 / 2010Fracture DateHydraulic压裂液产品成分信息披露']032总水量(gal)*:7,595真垂直深度(TVD):天然气生产类型:NAD27长/宽投影:32.558525纬度:-97.215242经度:Ole Gieser Unit D 6H井名称和编号:XTO EnergyOperator Name:42-439-35084API Number :TarrantCounty:Texas状态:12/10/2010破裂日期水力压裂液产品成分信息披露']032总水量(gal)*:7,595真垂直深度(TVD):天然气生产类型:NAD27长/宽投影:32.558525纬度:-97.215242经度:Ole Gieser Unit D 6H井名称和编号:XTO EnergyOperator Name:42-439-35084API Number :TarrantCounty:Texas状态:12/10/2010破裂日期水力压裂液产品成分信息披露']
该文件的屏幕截图:
解决方案
frompdfminer.pdfinterpimportPDFResourceManager,PDFPageInterpreterfrompdfminer.converterimportTextConverterfrompdfminer.layoutimportLAParamsfrompdfminer.pdfpageimportPDFPagefromioimportStringIOdefconvert_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=0caching=Truepagenos=set()forpageinPDFPage.get_pages(fp,pagenos,maxpages=maxpages,password=password,caching=caching,check_extractable=True):interpreter.process_page(page)text=retstr.getvalue()fp.close()device.close()retstr.close()returntextprint(convert_pdf_to_txt('test.pdf').strip().split('\n\n'))
输出量
水力压裂液产品成分信息披露
破裂日期状态:县:API编号:操作员名称:井名和编号:经度:纬度:长/纬投影:生产类型:真实垂直深度(TVD):总水量(gal)*:
12/10/2010 Texas Tarrant 42-439-35084 XTO Energy Ole Gieser Unit D 6H -97.215242 32.558525 NAD27 Gas 7,595 2,608,032
水力压裂液成分:
商品名
供应商
目的
配料
化学摘要服务编号
(CAS号)
最大成分
浓度
添加剂(按质量计)**
评论
最大成分
浓度
HF流体中(按质量计)**
水砂盐酸盐
Pumpco Pumpco
支撑剂盐酸
Plexslick 921
Pumpco
减摩器
Plexaid 673
Pumpco
阻垢剂
杀虫剂24L
Pumpco
杀菌剂
结晶硅
氯化氢水
石油馏分铵盐聚乙氧基化醇表面活性剂水
甲基酒精有机膦酸盐
Dazomat氢氧化钠水
7732-18-5 14808-60-7
7647-01-0 7732-18-5
64742-47-8 9003-06-9
7732-18-5
67-56-1
533-74-4 1310-73-2 7732-18-5
100.00 100.00
90.01799 9.84261
40.00 60.00
35.00 28.00 7.00 30.00
25.00 75.00
24.00 4.00 72.00
0.03353 0.05029
0.00941 0.00753 0.00188 0.00807
0.00276 0.00828
0.00424 0.00071 0.01271
总水量来源可能包括淡水,采出水和/或循环水**信息是基于最大的浓缩潜力,因此总量可能超过100
符合29 CFR 1910.1200(i)和附录D要求的化学品的成分信息可从供应商材料安全数据表(MSDS)获得