【Python】Docx解析
阿新 • • 發佈:2018-11-06
1、cd D:\ProgramData\Anaconda3
2、pip install python-docx
3、python程式碼處理
# -*- coding: utf-8 -*- import os import docx from win32com import client as wc docs = [] def traverse(f): fs = os.listdir(f) for f1 in fs: tmp_path = os.path.join(f,f1) if not os.path.isdir(tmp_path):#print('檔案: %s'%tmp_path) if os.path.splitext(tmp_path)[-1].lower() == ".doc" or os.path.splitext(tmp_path)[-1].lower() == ".docx": #print('檔案: %s'%tmp_path) docs.append(tmp_path) else: #print('資料夾:%s'%tmp_path) traverse(tmp_path)def parseDoc(f): doc = docx.Document(f) parag_num = 0 for para in doc.paragraphs : print("----------------------------------------------------") print(para.text) print("----------------------------------------------------") parag_num += 1 print ('This document has ', parag_num, ' paragraphs') def doc2docx(full_path): #dirname = os.path.dirname(full_path) #filename = os.path.basename(full_path) #newpath = full_path.replace('doc','docx') newpath = full_path + "x" if os.path.exists(newpath): return # 首先將doc轉換成docx word = wc.Dispatch("Word.Application") # 找到word路徑 + 檔名 ,即可開啟檔案 doc = word.Documents.Open(full_path) # 使用引數16表示將doc轉換成docx,儲存成docx後才能 讀檔案 doc.SaveAs(newpath,16) doc.Close() word.Quit() path = 'E:/NLP/Docs/' traverse(path) for k,v in enumerate(docs): if k < 1: print(k,v) parseDoc(v) #doc2docx(v)