有一个需求,就是要批量的读取doc文件,并且处理里面的文字

我们首先想到的方式是使用python进行文档的读取。但是通过实操发现,python并没办法处理doc的word文档,必须将doc文件转换成docx文件才能进行处理。下面就分享下操作的过程,亲测可用!

【python包安装】win32com

【操作平台】anaconda3

import os 
from win32com import client as wc
word = wc.Dispatch('Word.Application')
#将docx文件保存的路径
docxPath = 'D:\\wyj\\技术文档\\python-doc文件转换成docx文件\\docx'
#doc文件路径
path = "D:\\wyj\\技术文档\\python-doc文件转换成docx文件"
'''
获取doc文件名,创建docx文件路径
'''
def getFileName(path):
    filesList = []
    for root, dirs, files in os.walk(path):  
        isExists=os.path.exists(docxPath)
        #新建docx文件夹
        if not isExists :
            os.makedirs(docxPath)
        for file in files:
            #判断尾缀是不是doc
            suffix = file.split('.')[1]
            if suffix == 'doc':
                filesList.append(file)
        print(filesList)
        return filesList
'''
将doc文件转换成docx文件
'''
def docToDocx(fileNameList):
    try:
        for fileName in fileNameList:
            print("开始处理     文件名:"+fileName)
            doc = word.Documents.Open(path+'\\'+fileName)
            #[:-4]的意思是选这个字符串从开始到最后倒数第4位(不含)
            docxNamePath = docxPath+'\\'+fileName[:-4]+'.docx'
            print('转换完成!'+docxNamePath)
            doc.SaveAs(docxNamePath, 12, False, "", True, "", False, False, False, False)
            
    finally:
        #一定要记得关闭docx,否则会出现文件占用
        doc.Close()    
try:
    fileNameList = getFileName(path)
    docToDocx(fileNameList)
finally:
    word.Quit()

经过这一番操作,doc文档就能转换成docx文档了,如何读取docx文档的内容,我会在后边的文章中展示给大家!

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐