提取word文档中的图片并依次重命名保存

# -*- coding: utf-8 -*-
"""
对一个word文档中的图片提取并进行保存,word路径#获取文件夹下的word文档列表,路径自定义
保存的图片名称为:文档名_image序号,且保存在和word文档同一目录下
如需批量修改文件名请使用下一个程序

@author: TonyMa
"""

import docx
import os, re

 
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

if __name__ == '__main__':

    #获取文件夹下的word文档列表,路径自定义

    os.chdir('C:/Users/TonyMa/Desktop/chap5_12')
    spam=os.listdir(os.getcwd())
    for i in spam:
        get_pictures(str(i),os.getcwd())

# -*- coding: utf-8 -*-
"""
批量修改png图片文件名
在 #设置新文件名 这一行进行新文件名设置

@author: TonyMa
"""

import os
path=input('请输入文件路径(结尾加上\):')     

#获取该目录下所有文件,存入列表中
fileList=os.listdir(path)
numoffile = len(fileList)

n=0
for i in fileList:
    
    #设置旧文件名(就是路径+文件名)
    oldname = path + os.sep + fileList[n]   # os.sep添加系统分隔符
    
    #设置新文件名
    newnameend = '5-'+str(n+85)+'.png'
    newname = path + os.sep + newnameend
    
    #用os模块中的rename方法对文件改名
    os.rename(oldname,newname)   

    #显示修改结果
    print('正在进行',n+1,'/',numoffile,':    ',fileList[n],'======>',newnameend)
    
    
    n+=1

第一段代码用于提取图片,第二段代码批量修改文件名

参考:

如何使用Python提取Word文档中的图片? - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/373394808

Python批量修改文件名 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/367299550

猜你喜欢

转载自blog.csdn.net/wdjkdbndxdhw/article/details/122975149
今日推荐