美文网首页Pythonoffice
Python 抽取PDF、DOCX文档内容

Python 抽取PDF、DOCX文档内容

作者: 威猛的小老虎i | 来源:发表于2020-12-23 11:32 被阅读0次

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 Path
import tika
tika.initVM()
from tika import parser
report_path = Path(__file__).joinpath('../../newreport/report').resolve()

pdf_list = []
for i in report_path.glob('*.pdf'):
    pdf_list.append(str(i))     # 得到所有pdf的路径,需要加str,不然是windowspath

pdf_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.Application
from 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 docx
file = 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 pd
data = 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(好像是这个名) 有没有相应的包和文档,实在受不了国内互相抄的文章了

相关文章

网友评论

    本文标题:Python 抽取PDF、DOCX文档内容

    本文链接:https://www.haomeiwen.com/subject/ehsynktx.html