中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docx2txt庫怎么在Python中使用

發布時間:2021-03-08 11:21:15 來源:億速云 閱讀:511 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關docx2txt庫怎么在Python中使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Python主要用來做什么

Python主要應用于:1、Web開發;2、數據科學研究;3、網絡爬蟲;4、嵌入式應用開發;5、游戲開發;6、桌面應用開發。

安裝

pip install docx2txt

運行

1、命令行運行

# extract text
docx2txt file.docx
# extract text and images
docx2txt -i /tmp/img_dir file.docx

2、在python中調用

# extract text
docx2txt file.docx
# extract text and images
docx2txt -i /tmp/img_dir file.docx

補充:python docx提取word中的目錄及文本框中的文本

問題描述

python docx提取word中的目錄及文本框中的文本

解決方案

因未在docx庫找到直接識別word中目錄及文本框中文本的方法,所以采用了一個“笨”方法,docx庫可以把word文檔解析成xml格式,以解析xml的方式查找目錄及文本框中文本,具體做法:

迭代出文檔的所有element,其中目錄的tag為“std”,找到它后提出他的所有文本即為目錄文本;文本框的tag 為“textbox”,找到它后還要繼續下鉆尋找tag為 'r'的element,提取其文本則為文本框中文本。

# 提取word目錄
file = docx.Document(file_path)
children = file.element.body.iter()
child_iters = []
for child in children:
 # 通過類型判斷目錄
 if child.tag.endswith('main}sdt'):
  for ci in child.iter():
   if ci.text and ci.text.strip():
    child_iters.append(ci)
catalog = [ci.text for ci in child_iters]
# 提取word文本框中文本
file = docx.Document(file_path)
children = file.element.body.iter()
child_iters = []
for child in children:
 # 通過類型判斷目錄
 if child.tag.endswith('textbox'):
  for ci in child.iter():
   if ci.tag.endswith('main}r'):
    child_iters.append(ci)
textbox = [ci.text for ci in child_iters]

文本域的標簽,第一次找的是AlternateContent,后來發現對有些文本域失效;第二次又找到了pict,基本覆蓋了測試的所有文本域;第三次把word文檔的標簽都找出來看了一下,發現textbox這個標簽看著更靠譜,用它測試了一下,也能覆蓋所有的測試文本域,決定就選擇這個標簽。

提取文本后,又有了新需求,提取的文本很多都不成句,呈短語或單詞的形式,需要把提取的文本還原成段落形式:

file = docx.Document(file_path)
children = file.element.body.iter()
child_iters = []
tags = []
for child in children:
 # 通過類型判斷目錄
 if child.tag.endswith(('AlternateContent','textbox')):
  for ci in child.iter():
   tags.append(ci.tag)
   if ci.tag.endswith(('main}r', 'main}pPr')):
    child_iters.append(ci)
text = ['']
for ci in child_iters :
 if ci.tag.endswith('main}pPr'):
  text.append('')
 else:
  text[-1] += ci.text
 ci.text = ''
trans_text = ['***'+t+'***' for t in text]
print(trans_text)
i, k = 0, 0
for ci in child_iters :
 if ci.tag.endswith('main}pPr'):
  i += 1
  k = 0
 elif k == 0:
  ci.text = trans_text[i]
  k = 1
file.save('E:/***/test.docx')

上述就是小編為大家分享的docx2txt庫怎么在Python中使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

榆社县| 柳河县| 成安县| 永善县| 阳信县| 绵阳市| 天祝| 乡宁县| 仁寿县| 福州市| 清原| 化隆| 天祝| 琼结县| 张北县| 平安县| 双鸭山市| 尼玛县| 积石山| 剑川县| 缙云县| 新化县| 旬阳县| 静宁县| 堆龙德庆县| 台江县| 锦屏县| 大余县| 镇赉县| 胶州市| 西乌珠穆沁旗| 上杭县| 梅河口市| 察雅县| 南安市| 阜新| 长泰县| 土默特左旗| 堆龙德庆县| 安庆市| 调兵山市|