1. 程式人生 > 實用技巧 >python 好久不用,基礎重拾系列(1,讀取word(.doc&&.docx)2,批量轉換.doc為.docx字尾 3,相對地址轉絕對地址)

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)