工具(五)--将doc格式文件批量转为docx

文章目录

    • 将doc转为docx

将doc转为docx

'''
将文件下所有doc文件转为docx格式
需要pywin32,自行下载
'''

import os
from win32com import client

class Mod_doc_to_docx():
    def __init__(self, directory, endswith):
        self.directory = directory
        self.endswith = endswith

    def search_files(self):
        # 将路径处理为系统兼容
        dire = os.path.normpath(self.directory)
        objects ={}
        # 当前目录  子目录们  文件们
        for curdir, subdirs, files in os.walk(dire):
            for file in files:
                if file.endswith(self.endswith):
                    # 当前目录名 作为类别标签
                    label = curdir.split(os.path.sep)[-1]
                    if label not in objects:
                        objects[label] = []
                    # 把path加入到label中
                    path = os.path.join(curdir, file)
                    objects[label].append(path)
        return objects

    def change_files(self,objects,dir):
        '''

        :param objects:
        :param dir:所有doc文件所在的目录
        :return:
        '''
        paths = objects[dir]
        for path in paths:
            word = client.Dispatch('Word.Application')
            doc = word.Documents.Open(path)  # 目标路径下的文件
            doc.SaveAs(os.path.splitext(path)[0] + ".docx", 16)  # 转化后路径下的文件
            doc.Close()
            word.Quit()

if __name__ == "__main__":
    s = Mod_doc_to_docx('D:\my_code\Secret_contract', '.doc')
    objects = s.search_files()
    s.change_files(objects,'Secret_contract')


你可能感兴趣的:(工具)