pywin32操作文本转化为word

pywin32:python操作windows底层的库,主要是对vb的封装

最近在工作中遇到的问题就是个别的文档不知道编码,但是可以用word打开,于是酒啊调用pywin32对文档进行操作,本篇讲的主要是思路

通过word打开文档,保存为'.docx'文件,然后再进行数据操作

下边代码是多线程编写的,但是没有编写完(持续更新),没有进入循环,但是转文件已经没有问题了


import os
import win32com
import pythoncom
from win32com.client import Dispatch
import shutil
import threading


def trans(wordFile, i):
    try:
        # print(wordFile)
        pythoncom.CoInitialize()
        word_app = win32com.client.Dispatch('Word.Application')
        worddoc = word_app.Documents.Open(wordFile)
        # 生成的文件路径
        worddoc.SaveAs('D:\\2\\{}.docx'.format(i), 16) #此处16一定要加
        worddoc.Close()
        word_app.Quit()
        FilePath = 'D:\\2\\{}.files'.format(i)
        del_file(FilePath)

    except Exception as e:
        print("错误:", e)


# 删除多余的文件夹
def del_file(FilePath):
    if os.path.exists(FilePath):
        print("存在")
        print(FilePath)
        for file_name in os.listdir(FilePath):
            print(file_name)
            file_name1 = FilePath + '\\' + file_name
            os.remove(file_name1)
        shutil.rmtree(FilePath)


def get_file(i):
    # 需要遍历的文件夹
    item = {}
    for wordFile in os.listdir('C:\\Users\znb\Desktop\裁判文书文件\新建文件夹'):
        # 文件的路径
        wordFile = 'C:\\Users\znb\Desktop\裁判文书文件\新建文件夹\\{}'.format(wordFile)
        i = i + 1
        item['wordFile'] = wordFile
        item['i'] = i
        yield item


if __name__ == "__main__":
    thread_list = []
    i = 0
    A = get_file(i)
    for n in range(5):
        # print(A.__next__())
        B = A.__next__()
        print(B)
        t = threading.Thread(target=trans, args=(B['wordFile'], B['i']))
        thread_list.append(t)
    for t in thread_list:
        t.start()
    for t in thread_list:
        t.join()




作者QQ群(非培训):832785950(备注来地)

你可能感兴趣的:(pywin32操作文本转化为word)