python转换doc文档为docx格式后,提取文档段落内容后保存
#导入所需库
from docx import Document
import os
import docx
import win32com.client as wc
#文件地址后的/不能省略
filePath = "C:/Users/现有数据字典/"
word = wc.Dispatch("Word.Application")
os.chdir(filePath)
for root, dirs, files in os.walk(r'%s' % (filePath), topdown=False):
for file_name in files:
if '.doc' in file_name:
#doc文件另存为docx
doc = word.Documents.Open(root+file_name)
#上面的地方只能使用完整绝对地址,相对地址找不到文件
op = file_name.split('.')[0]
newfile_name = op+'.docx'
doc.SaveAs(root+newfile_name, 12, False, "", True, "", False, False, False, False)#转换后的文件,12代表转换后为docx文件
#注意SaveAs会打开保存后的文件,有时可能看不到,但后台一定是打开的
doc.Close
word.Quit
#打开word文档
document = Document(root+newfile_name)
#获取所有段落
all_paragraphs = document.paragraphs
for paragraph in all_paragraphs:
with open(filePath+"test.txt","a+") as f:
#写入每一个段落的文字,'\n'分行
f.writelines('\n'+paragraph.text) # 自带文件关闭功能,不需要再写f.close()
这里是文件夹中已有docx文件,则不需要转换步骤:
#导入所需库
from docx import Document
import os
import docx
import win32com.client as wc
filePath = "C:/Users/现有数据字典/"
word = wc.Dispatch("Word.Application")
os.chdir(filePath)
for root, dirs, files in os.walk(r'%s' % (filePath), topdown=False):
for file_name in files:
if '.docx' in file_name:
#打开word文档
document = Document(root+file_name)
#获取所有段落
all_paragraphs = document.paragraphs
for paragraph in all_paragraphs:
with open(filePath+"test.txt","a+") as f:
#写入每一个段落的文字
f.writelines('\n'+paragraph.text) # 自带文件关闭功能,不需要再写f.close()