当前位置: 首页 > 工具软件 > docx2tex > 使用案例 >

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

姜博
2023-12-01

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()
 类似资料: