【发布时间】:2017-07-13 05:00:21
【问题描述】:
我正在使用 python-docx 作为自动化工具。在我运行代码以将一个列表中的某些单词替换为另一个列表中的对应单词后,我遇到了一个问题,它正在删除所有属性(如字体大小、字体名称、粗体或斜体文本的一部分、书签中的段落和表格中的文本),并带有“Calibri”中的纯文本,字体大小为“12”。
我使用的代码是:
wrongWord = "xyz"
correctWord = "abcd"
def iter_block_items(parent):
if isinstance(parent, _Document):
parent_elm = parent.element.body
elif isinstance(parent, _Cell):
parent_elm = parent._tc
else:
raise ValueError("something's not right")
for child in parent_elm.iterchildren():
if isinstance(child, CT_P):
yield Paragraph(child, parent)
elif isinstance(child, CT_Tbl):
yield Table(child, parent)
document = Document(r"F:\python\documentSample.docx")
for block in iter_block_items(document):
if isinstance(block, Paragraph):
if wrongWord in block.text:
block.text = block.text.replace(wrongWord, correctWord)
else:
for row in block.rows:
for cell in row.cells:
if wrongWord in cell.text:
cell.text = cell.text.replace(wrongWord, correctWord)
document.save(r"F:\python\documentSampleAfterChanges.docx")
您能否帮我在文本替换后从原始文件中复制相同的字体大小、字体名称和其他相关属性。
【问题讨论】:
标签: python python-2.7 python-3.x