python 好久不用,基础重拾系列(1,读取word(.doc&&.docx)2,批量转换.doc为.docx后缀 3,相对地址转绝对地址)

直接给代码,因为注释已经很详细了。

复制代码
 1 #读取docx中的文本代码示例
 2 import docx
 3 import os
 4 from win32com import client as wc
 5 #将doc转成docx
 6 def doSaveAas(doc_path,docx_path):
 7     word = wc.Dispatch('Word.Application')
 8     doc = word.Documents.Open(doc_path)  # 目标路径下的文件
 9     doc.SaveAs(docx_path, 12, False, "", True, "", False, False, False, False)  # 转化后路径下的文件
10     doc.Close()
11     word.Quit()
12 
13 #将相对路径转换乘绝对路径,同时调用转换文件进行转换,同时再顺便删除之前的文件
14 def Dir_doc2docx(Dir_path):
15     for file_name in os.listdir(Dir_path):
16         print("AAAAAAAAAAAAAAAA")
17         print("文件名:"+file_name)
18         file_path = os.path.join(Dir_path, file_name)
19         print("文件后缀:"+os.path.splitext(file_name)[1] )
20         if os.path.splitext(file_name)[1] == '.doc':
21             abs_file_path=os.path.abspath(file_path)
22             print("绝对路径:"+abs_file_path)
23             doSaveAas(abs_file_path,abs_file_path+'x')
24         try:
25             os.remove(file_path)
26         except:
27             continue
28 
29 if __name__ =="__main__":
30     #获取文档对象
31     Dir_path="..\data"
32     Dir_doc2docx(Dir_path)
33     file_name=os.listdir(Dir_path)[1]
34     file_path = os.path.join(Dir_path, file_name)
35     print(file_path)
36     file=docx.Document(file_path)
37     print("段落数:"+str(len(file.paragraphs)))#段落数为13,每个回车隔离一段
38     #输出每一段的内容
39     for para in file.paragraphs:
40         print(para.text)
41     #输出段落编号及段落内容
42     for i in range(len(file.paragraphs)):
43         print(""+str(i)+"段的内容是:"+file.paragraphs[i].text)
复制代码

 

posted @   博二爷  阅读(244)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示