1. 程式人生 > >【Python】Docx解析

【Python】Docx解析

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)