龙空技术网

如何使用Python提取Word文档中的图片?

信息美学 140

前言:

此刻朋友们对“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, re
3、编写图片提取函数

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:        pass
4、编写主运行函数
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 提取图片