700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python提取word文档中的图片 识别图片文字之后再转存为word文档

Python提取word文档中的图片 识别图片文字之后再转存为word文档

时间:2022-09-04 01:17:55

相关推荐

Python提取word文档中的图片 识别图片文字之后再转存为word文档

#!/usr/bin/env python# coding: utf-8import zipfile #压缩包import os #文件库import shutilimport pytesseractimport PILfrom PIL import Imagefrom docx import Document ##需要安装第三方库,python-docxfrom 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_strself.file_list=file_listself.b=bdef get_image(self):file_list=self.file_listdir_str=self.dir_strb=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:passprint ("图片提取完成")def insert_word(self):file_list=self.file_listb=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:passprint ('数据写入完成')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={'10','10','10'}b=os.getcwd()#当前文件地址,可传入固定字符串,格式为:C:\\Test\\ar(dir_str,file_list,b)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。