#!/usr/bin/env python
# coding: utf-8
import zipfile #压缩包
import os #文件库
import shutil
import pytesseract
import PIL
from PIL import Image
from docx import Document ##需要安装第三方库,python-docx
from docx.shared import Pt #用于设置字体样式
from docx.oxml.ns import qn # 中文格式
class get_result:
def __init__(self,dir_str,file_list,b)
self.dir_str=dir_str
self.file_list=file_list
self.b=b
def get_image(self):
file_list=self.file_list
dir_str=self.dir_str
b=self.b
# 提取word文档中的图片
for s in file_list:
#print (s)
file_path=dir_str.format(s)
try:
doc=zipfile.ZipFile(file_path)#压缩文件
r_path=b+"\\image\\{0}".format(s)
if os.path.exists(r_path)!=0:
shutil.rmtree(r_path) #os.removedirs,如果目录下不为空则不能删除,shutil.rmtree可强制删除文件夹
os.mkdir(r_path)
for info in doc.infolist():
if info.filename.endswith((".jpeg",'.jpg','.png','.gif')):#判断文件类型
doc.extract(info.filename,r_path)
except Exception as e:
print (e)
finally:
pass
print ("图片提取完成")
def insert_word(self):
file_list=self.file_list
b=self.b
####提取图片中的文字,并写入word/txt文档
for s in file_list:
#print (s)
try:
r_path=b+"\\image\\{0}\\word\\media".format(s)#图片路径
#txt_path=b+"\\{0}.txt".format(s)#写入文件路径
docx_path=b+"\\{0}.docx".format(s)
t=""
if os.path.exists(r_path)!=0:
for filename in os.listdir(r_path):
t=t+"\n"+str(pytesseract.image_to_string(Image.open(r_path+"\\"+filename),lang="chi_sim"))
''' 写入txt文件 fd=open(txt_path,'w')#w 将覆盖原文件内容,a,向原文件追加内容 fd.write(t) fd.close() '''
'''写入word文档'''
doc=Document()
doc.styles["Normal"].font.name = u"微软雅黑"#设置字体样式
doc.styles["Normal"].font.size = Pt(14)#设置字体大小
doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')#设置文档的基础样式
doc.add_paragraph(t)#增加一个paragraph,写入内容
doc.save(docx_path)#保存文档
except Exception as e:
print (e)
finally:
pass
print ('数据写入完成')
def r(dir_str,file_list,b):
getResult=get_result(dir_str,file_list,b)
getResult.get_image()
getResult.insert_word()
if __name__=="__main__"::
dir_str='{0}.docx'#文件名称
file_list={
'201310',
'201410',
'201510'
}
b=os.getcwd()#当前文件地址,可传入固定字符串,格式为:C:\\Test\\a
r(dir_str,file_list,b)
Python提取word文档中的图片,识别图片文字之后再转存为word文档
原文作者:进击的小可爱
原文地址: https://blog.csdn.net/qq_40062513/article/details/108831744
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/qq_40062513/article/details/108831744
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。