如何用Python-docx按字母順序對MS Word段落進行排序?
我試了好幾種方法,但都不能奏效。 像下面這樣的代碼是否可以完成作業?
from docx import Document
document = Document()
document.add_paragraph('B - paragraph two' )
document.add_paragraph('A - paragraph one' )
document.paragraph.sort(key=lambda x: x.text)
document.save('sorted_paragraphs.docx')
在sorted_paragraphs.docx中預期的結果:
A - 第一段
B - 第二段
即:是否有辦法做到MS word GUI sort用python做的同樣的事情?
。重點是要改變段落在檔案中的位置,以便根據段落的第一個字母按字母順序顯示。
uj5u.com熱心網友回復:
類似這樣的東西應該能起到作用:
# ---你想排序的段落范圍,按段落索引。
# ---注意最后一段(18)不包括在內,一致。
# ---用Python的 "切片 "符號。
start, end = 8, 18。
# ---創建一個段落-文本的圖元(對)排序串列(the
# --- 排序的基礎)和段落`<w:p>`元素的一個排序串列。
# --- 段落的范圍。
text_element_triples = sorted(
(paragraph.text, i, paragraph._p)
for i, paragraph in enumerate(document.paragraph[start:end] )
)
# ---將每個段落元素移到排序的位置,從開始
# ---從串列中的第一個開始。
_, _, last_p = text_element_triples[0]
for _, _, p in text_element_triples[1: ] 。
last_p.addnext(p)
最后_p = p
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/328380.html
標籤:
