基於Python獲取docx/doc檔案內容程式碼解析
阿新 • • 發佈:2020-02-17
這篇文章主要介紹了基於Python獲取docx/doc檔案內容程式碼解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
整體思路:
下載檔案並修改後綴為zip檔案,解壓zip檔案,所要獲取的內容在固定的資料夾下:work/temp/word/document.xml
所用包,全部是python自帶,不需要額外下載安裝.
# encoding:utf-8 import os import re import requests import zipfile import xml.dom.minidom newfile = 'test.docx' def create(newfile): """下載docx檔案,並修改後綴為zip""" res = requests.get('https://www.cqjbfy.gov.cn/publiccenter/splc/mb/splc_gginfo.asp?newsid=28949') if not os.path.exists(newfile): f = open(newfile,'wb') for chunk in res.iter_content(100000): f.write(chunk) f.close() os.rename(newfile,'test.zip') 這種方法發現只能解決一部分doc檔案,具體原因不得而知,有明白的歡迎留言 # 將doc/docx檔案壓縮成zip檔案 #pf = zipfile.ZipFile('test.zip','w',zipfile.ZIP_STORED) #pf.write(newfile) def get_txt(): """解壓zip,並在work/temp/word/document.xml獲取文字內容,進行正則替換標籤等操作""" f = zipfile.ZipFile('test.zip','r') for file in f.namelist(): f.extract(file,"temp/") f = xml.dom.minidom.parse('./temp/word/document.xml') txt = re.sub(r'</w:t></w:r></w:p>','\n',f.toxml()) print re.sub(r'<.*?>','',txt) if __name__ == '__main__': create(newfile) get_txt()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。