標題等級、大綱等級、編號等級的區(qū)別
在Microsoft Word中:
- 【標題X】是一個樣式,一般來說,【標題1】樣式的大綱級別是1級。
- 大綱級別一般用于頁面導(dǎo)航和生成目錄??梢杂益I文字->段落里查看/設(shè)置大綱的級別。設(shè)置成【x級】后左側(cè)導(dǎo)航欄就會顯示。
- 編號等級就是大家熟知的項目編號,常用于正文。
1、使用docx讀取word文檔
from docx import Document
source_path = "./test.docx"
docs = docx_Document(source_path)
基本沒有一個python庫能直接讀取doc文檔的,所以需要先把doc轉(zhuǎn)化為docx文件,參考:【python】linux系統(tǒng)下doc轉(zhuǎn)docx文件
2、使用docx獲取word文檔的標題 等級 樣式
import re
for paragraph in docs.paragraphs:
if paragraph and paragraph.text:
# 獲取xml源碼
xml = paragraph._p.xml
# 進行xml源碼字符匹配
if xml.find('<w:outlineLvl') >= 0:
start_index = xml.find('<w:outlineLvl')
end_index = xml.find('>', start_index)
outlineLvl_value = xml[start_index:end_index+1]
outlineLvl_value = re.search("\d+", outlineLvl_value).group()
print(f"文本:{paragraph.text}-->大綱等級:{outlineLvl_value}")
原理:
1、docx.Document()讀取文檔后會按照文章段落劃分成一段一段的。
2、然后我們再獲取每個段落的xml源碼,即:xml = paragraph._p.xml。
3、源碼中的<w:outlineLvl w:val=“2”/>就表示這是個3級大綱(因為是從0開始)。
4、接下來就好辦了,就用字符串匹配把這個值提取出來就行了。文章來源:http://www.zghlxwxcb.cn/news/detail-775197.html
3、使用docx獲取word文檔的編號等級
原理和代碼同上,只需要把outlineLvl
改成ilvl
即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-775197.html
到了這里,關(guān)于【python】使用docx獲取word文檔的標題等級、大綱等級和編號等級的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!