前言:
此刻朋友们对“python调用cmd并传入命令 shell”大概比较重视,你们都需要学习一些“python调用cmd并传入命令 shell”的相关文章。那么小编同时在网络上网罗了一些关于“python调用cmd并传入命令 shell””的相关内容,希望看官们能喜欢,同学们快快来学习一下吧!有时候我们会收到一些Word文档,如简历、论文以及其他的Word文档,里面包含了很多图片。如何使用自动化的方式,提取Word里面的图片呢?下面就让我们来一起学习一下
1 安装第三方库 Python-docx
打开cmd命令行(或者powershell)窗口,输入安装第三方库命令
pip install python-docx
等待安装完成
2、导入os、re以及docx库
import docximport os, re3、编写图片提取函数
1、读取Word文档,遍历图片
doc = docx.Document(word_path) dict_rel = doc.part._rels for rel in dict_rel: rel = dict_rel[rel] if "image" in rel.target_ref: if not os.path.exists(result_path): os.makedirs(result_path) img_name = re.findall("/(.*)", rel.target_ref)[0] word_name = os.path.splitext(word_path)[0] if os.sep in word_name: new_name = word_name.split('\\')[-1] else: new_name = word_name.split('/')[-1] img_name = f'{new_name}-'+'.'+f'{img_name}'
2、依次保存图片
with open(f'{result_path}/{img_name}', "wb") as f: f.write(rel.target_part.blob)
3、完整的函数代码
def get_pictures(word_path, result_path): """ 图片提取 :param word_path: word路径 :return: """ try: doc = docx.Document(word_path) dict_rel = doc.part._rels for rel in dict_rel: rel = dict_rel[rel] if "image" in rel.target_ref: if not os.path.exists(result_path): os.makedirs(result_path) img_name = re.findall("/(.*)", rel.target_ref)[0] word_name = os.path.splitext(word_path)[0] if os.sep in word_name: new_name = word_name.split('\\')[-1] else: new_name = word_name.split('/')[-1] img_name = f'{new_name}-'+'.'+f'{img_name}' with open(f'{result_path}/{img_name}', "wb") as f: f.write(rel.target_part.blob) except: pass4、编写主运行函数
if __name__ == '__main__': #获取文件夹下的word文档列表,路径自定义 os.chdir("D:\Demo") spam=os.listdir(os.getcwd()) for i in spam: get_pictures(str(i),os.getcwd())5、结果展示
完整代码
import docximport os, re# 需要安装第三方包# pip install python-docx def get_pictures(word_path, result_path): """ 图片提取 :param word_path: word路径 :return: """ try: doc = docx.Document(word_path) dict_rel = doc.part._rels for rel in dict_rel: rel = dict_rel[rel] if "image" in rel.target_ref: if not os.path.exists(result_path): os.makedirs(result_path) img_name = re.findall("/(.*)", rel.target_ref)[0] word_name = os.path.splitext(word_path)[0] if os.sep in word_name: new_name = word_name.split('\\')[-1] else: new_name = word_name.split('/')[-1] img_name = f'{new_name}-'+'.'+f'{img_name}' with open(f'{result_path}/{img_name}', "wb") as f: f.write(rel.target_part.blob) except: passif __name__ == '__main__': #获取文件夹下的word文档列表,路径自定义 os.chdir("D:\Demo") spam=os.listdir(os.getcwd()) for i in spam: get_pictures(str(i),os.getcwd())
今天和大家一起学习了如何从Word文档中批量提取图片,大家都学会了吗?赶快试一试吧!后续,我会和大家一起学习更多的Python编程与Office办公自动化的例子,欢迎大家关注!
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #python调用cmd并传入命令 shell #python图片文件 #python做的图怎么导出 #python 提取图片