Python如何提取word中的图片?Python怎么将word文件内图片取出来

在之前的一篇文章中小编已经给大家讲解过了该如何在word文档内指定位置插入图片,那么这一次就介绍一个和其相反的功能,那就是从word文件中将图片都给取出来 。下面有完整代码示例和步骤详解,想要了解和学习的话就继续阅读本文吧 。

Python如何提取word中的图片?Python怎么将word文件内图片取出来

文章插图
1.首先需要导入三个内置模块zipfile、os、shutil,因为这个功能的实现原理是,将word文件转为zip压缩文件就可以将里面的图片取出来,代码如下:
import zipfileimport osimport shutil2.定义一个函数并设置四个参数,而这个四个参数的意思分别为word文件路径、重命名后的zip文件路径、图片保存路径以及最后结果路径,示例如下:
def word2pic(path, zip_path, tmp_path, store_path):【Python如何提取word中的图片?Python怎么将word文件内图片取出来】3.在函数中需要先调用os模块的rename()方法将word文件重命名为zip后缀修改文件类型,之后将这个文件进行解压和提取图片的操作,示例如下:
os.rename(path, zip_path)f = zipfile.ZipFile(zip_path, 'r')for file in f.namelist():f.extract(file, tmp_path)f.close()4.解压完成之后还需要将这个zip文件重新的转为word文档,因为还需要通过它来获取图片列表才方便命名和保存,代码如下所示:
os.rename(zip_path, path)pic = os.listdir(os.path.join(tmp_path, 'word/media'))5.文件列表以及图片文件都获取到了之后就是要执行保存草了,这里的图片名称是根据word文档的路径和列表索引来生成的,为的就是防止出现文件名重复的情况,代码如下所示:
for  i  in  pic:  new_name = path.replace('', '_')  new_name = new_name.replace(':', '') + '_' + i  shutil.copy(os.path.join(tmp_path + '/word/media', i), os.path.join(store_path, new_name))6.因为图片在取出来之后都是会先存放到临时文件夹之中然后再保存到实际结果文件夹内,那么就需要将临时文件夹给删除掉才可以在下一次继续使用 。最后的话调用函数并传入参数即可,如下所示:
for i in os.listdir(tmp_path):  if os.path.isdir(os.path.join(tmp_path, i)):    shutil.rmtree(os.path.join(tmp_path, i))m = word2pic(path, zip_path, tmp_path, store_path)以上就是关于“Python如何提取word中的图片?Python怎么将word文件内图片取出来”的全部内容了,希望对你有所帮助 。

    推荐阅读