有一个需求,就是要批量的读取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文档的内容,我会在后边的文章中展示给大家!