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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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的设计差异