欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中docx2txt庫(kù)的使用說(shuō)明

 更新時(shí)間:2021年03月06日 10:05:10   作者:angus_monroe  
這篇文章主要介紹了Python中docx2txt庫(kù)的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

docx2txt的Github地址

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

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

安裝

pip install docx2txt

運(yùn)行

1、命令行運(yùn)行

# 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

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

問(wèn)題描述

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

解決方案

因未在docx庫(kù)找到直接識(shí)別word中目錄及文本框中文本的方法,所以采用了一個(gè)“笨”方法,docx庫(kù)可以把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:
 # 通過(guò)類型判斷目錄
 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:
 # 通過(guò)類型判斷目錄
 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]

文本域的標(biāo)簽,第一次找的是AlternateContent,后來(lái)發(fā)現(xiàn)對(duì)有些文本域失效;第二次又找到了pict,基本覆蓋了測(cè)試的所有文本域;第三次把word文檔的標(biāo)簽都找出來(lái)看了一下,發(fā)現(xiàn)textbox這個(gè)標(biāo)簽看著更靠譜,用它測(cè)試了一下,也能覆蓋所有的測(cè)試文本域,決定就選擇這個(gè)標(biāo)簽。

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

file = docx.Document(file_path)
children = file.element.body.iter()
child_iters = []
tags = []
for child in children:
 # 通過(guò)類型判斷目錄
 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')

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

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

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

相關(guān)文章

  • 淺談python處理json和redis hash的坑

    淺談python處理json和redis hash的坑

    這篇文章主要介紹了淺談python處理json和redis hash的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • python字符串操作的15種方法匯總

    python字符串操作的15種方法匯總

    對(duì)于python中的字符串,有多種操作方法,下面這篇文章主要給大家介紹了關(guān)于python字符串操作的15種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • web.py中調(diào)用文件夾內(nèi)模板的方法

    web.py中調(diào)用文件夾內(nèi)模板的方法

    這篇文章主要介紹了web.py中調(diào)用文件夾內(nèi)模板的方法,竟然如此的簡(jiǎn)單,而且好用,需要的朋友可以參考下
    2014-08-08
  • 深入探索Python解碼神器Chardet自動(dòng)檢測(cè)文本編碼

    深入探索Python解碼神器Chardet自動(dòng)檢測(cè)文本編碼

    Chardet,洞察編碼的清晰水晶球,一個(gè)讓你與編碼不再“失聯(lián)”的神器,本文帶大家走近這個(gè)隱藏在Python工具箱中的小寶貝,探索它的秘密
    2024-01-01
  • 詳解Python中的join()函數(shù)的用法

    詳解Python中的join()函數(shù)的用法

    這篇文章主要介紹了詳解Python中的join()函數(shù)的用法,join()函數(shù)主要用來(lái)拼接字符串,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-04-04
  • 使用python操作lmdb對(duì)數(shù)據(jù)讀取的實(shí)例

    使用python操作lmdb對(duì)數(shù)據(jù)讀取的實(shí)例

    這篇文章主要介紹了使用python操作lmdb對(duì)數(shù)據(jù)讀取的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • 使用Pandas操作Excel文件的技巧與方法分享

    使用Pandas操作Excel文件的技巧與方法分享

    今天接到一個(gè)需求,需要讀取excel,將其中兩列分別作為字典的key、value進(jìn)行保存,怎么讀取excel呢,之前好像使用過(guò)Pandas,但是接觸不多,借此機(jī)會(huì)記錄一下學(xué)習(xí)的收獲,需要的朋友可以參考下
    2023-12-12
  • Flask框架 CSRF 保護(hù)實(shí)現(xiàn)方法詳解

    Flask框架 CSRF 保護(hù)實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了Flask框架 CSRF 保護(hù)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了Flask-WTF針對(duì)CSRF攻擊的防護(hù)相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • python3 pygame實(shí)現(xiàn)接小球游戲

    python3 pygame實(shí)現(xiàn)接小球游戲

    這篇文章主要為大家詳細(xì)介紹了python3 pygame實(shí)現(xiàn)接小球游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Python使用pymssql連接SQL?SEVER數(shù)據(jù)庫(kù)全流程

    Python使用pymssql連接SQL?SEVER數(shù)據(jù)庫(kù)全流程

    SQL Server是微軟推出的重量級(jí)的數(shù)據(jù)庫(kù),目前有多個(gè)版本,如2000、2008、2012等,下面這篇文章主要給大家介紹了關(guān)于Python使用pymssql連接SQL?SEVER數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下
    2023-12-12

最新評(píng)論