python转换doc文档为docx格式后,提取文档段落内容后保存

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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值