Python 抽取PDF、DOCX文档内容

1. 抽取pdf内容

数据分析常见的需求是抽取pdf内容,很多常用的包pdfminer.six、pdfminer3k等用法比较繁琐且不清晰,终于让我找到一个简单粗暴的工具 - tika

######### 某些pdf名称可能无法在win下读取,需要修改文件名 ############## 利用rename 批量修改文件名for index, report in enumerate(report_path.glob('*')): preix = str(report).split('.')[1] name = report.with_name(str(index+1)+'.'+preix) report.rename(name)################################################################# 代码块功能:抽取出目录下所有pdf的内容from pathlib import Pathimport tikatika.initVM()from tika import parserreport_path = Path(__file__).joinpath('../../newreport/report').resolve()pdf_list = []for i in report_path.glob('*.pdf'): pdf_list.append(str(i)) # 得到所有pdf的路径,需要加str,不然是windowspathpdf_content_list = []for i in pdf_list: raw = parser.from_file(i) # 替换多个字符 pdf_content_list.append(raw['content'].strip().replace('\n', '').replace(' ', ''))

2. 抽取docx内容

抽取docx内容相对成熟,使用docx工具包, 如果是doc文件则需要转换成docx格式。

# 1. 将doc文件转换成docx,需要安装office,如果只有wps的话,可能需要换成kwps.Applicationfrom win32com import client as wc word = wc.Dispatch('Word.Application') # 打开word应用程序for file in files:    doc = word.Documents.Open(file)  #打开word文件    doc.SaveAs('{}x'.format(file), 12 )#另存为后缀为'.docx'的文件,其中参数12指docx文件    doc.Close()  #关闭原来word文件word.Quit()# 2读取docx文档import docxfile = docx.Document(doc_)    title = file.paragraphs[0].text    content = ''    for para in file.paragraphs:        content += para.text.strip()

3. csv转成excel格式

针对没有装wps打开csv文件可能乱码,需要转换成excel格式,简单的八大鸟。

import pandas as pddata = pd.read_csv(r'E:\***\report_trans.csv')data.to_excel('E:\***\report_trans.xlsx',index=False)

4. 总结

  1. 数据分析时候善用find函数、pickle包
  2. 需要好好锻炼一下正则表达式能力
  3. 先google pypi readio(好像是这个名) 有没有相应的包和文档,实在受不了国内互相抄的文章了
(0)

相关推荐