最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中docx2txt庫的使用說明

 更新時間:2021年03月06日 10:05:10   作者:angus_monroe  
這篇文章主要介紹了Python中docx2txt庫的使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

docx2txt的Github地址

docx2txt是基于python的從docx文件中提取文本和圖片的庫。

代碼是從python-docx中獲取的。它也可以從頁眉,頁腳和超鏈接中提取文本。它現(xiàn)在也可以提取圖像。

安裝

pip install docx2txt

運行

1、命令行運行

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

2、在python中調(diào)用

# 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”,找到它后還要繼續(xù)下鉆尋找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,后來發(fā)現(xiàn)對有些文本域失效;第二次又找到了pict,基本覆蓋了測試的所有文本域;第三次把word文檔的標簽都找出來看了一下,發(fā)現(xiàn)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')

把標簽pPr當做換行標志, 把提取的文本每段前后都加了“***”后又寫回文檔中。

注:這里又發(fā)現(xiàn)AlternateContent這個標簽必須要帶上,否則可以提取文本域內(nèi)的文字,但改變文字寫回去保存word不顯示更改后的文字。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Pytorch如何指定device(cuda or cpu)

    Pytorch如何指定device(cuda or cpu)

    這篇文章主要介紹了Pytorch如何指定device(cuda or cpu)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 從pandas一個單元格的字符串中提取字符串方式

    從pandas一個單元格的字符串中提取字符串方式

    今天小編就為大家分享一篇從pandas一個單元格的字符串中提取字符串方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python 自動化辦公之批量修改文件名實操

    python 自動化辦公之批量修改文件名實操

    這篇文章主要介紹了python 自動化辦公之批量修改文件名實操,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • Pytorch中的modle.train,model.eval,with torch.no_grad解讀

    Pytorch中的modle.train,model.eval,with torch.no_grad解讀

    這篇文章主要介紹了Pytorch中的modle.train,model.eval,with torch.no_grad解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python復合賦值運算符由淺入深實例探究

    Python復合賦值運算符由淺入深實例探究

    這篇文章主要為大家介紹了Python復合賦值運算符由淺入深實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Python簡單計算文件MD5值的方法示例

    Python簡單計算文件MD5值的方法示例

    這篇文章主要介紹了Python簡單計算文件MD5值的方法,涉及Python文件讀取、hash運算及md5加密等相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Django框架反向解析操作詳解

    Django框架反向解析操作詳解

    這篇文章主要介紹了Django框架反向解析操作,結(jié)合實例形式詳細分析了Django框架相關(guān)定義、原理、使用方法及操作注意事項,需要的朋友可以參考下
    2019-11-11
  • VSCode2022配置Python3.9.6的詳細教程

    VSCode2022配置Python3.9.6的詳細教程

    這篇文章主要介紹了VSCode2022配置Python3.9.6教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • 利用Python繪制好看的玫瑰花圖

    利用Python繪制好看的玫瑰花圖

    玫瑰花圖是節(jié)理統(tǒng)計方式之一,方法簡便,形象醒目,比較清楚地反映出主要節(jié)理的方向,有助于分析區(qū)域構(gòu)造。本文將用Python繪制好看的玫瑰花圖,感興趣的可以了解一下
    2022-05-05
  • 使用python爬取微博數(shù)據(jù)打造一顆“心”

    使用python爬取微博數(shù)據(jù)打造一顆“心”

    這篇文章主要介紹了使用python基于微博數(shù)據(jù)打造一顆“心”,作為程序員,我準備了一份特別的禮物,用以往發(fā)的微博數(shù)據(jù)打造一顆“愛心”,我想她一定會感動得哭了吧,需要的朋友可以參考下
    2019-06-06

最新評論

富锦市| 怀宁县| 湘潭县| 仙游县| 皋兰县| 拉孜县| 贵港市| 乌拉特中旗| 屏南县| 定兴县| 石门县| 龙井市| 临沧市| 鄯善县| 双柏县| 麟游县| 新安县| 凤城市| 安阳县| 罗江县| 开平市| 平度市| 墨竹工卡县| 鹤峰县| 西城区| 昌图县| 县级市| 白朗县| 永新县| 牙克石市| 宿州市| 孟连| 安多县| 宣化县| 平武县| 嘉善县| 固镇县| 九江县| 重庆市| 资源县| 内丘县|