Python-docx:编辑预先存在的 运行
Python-docx: Editing a pre-existing Run
import docx
doc = docx.Document('CLT.docx')
test = doc.paragraphs[12].runs[2].text
print(test)
doc.save(input('Name of docx file? Make sure to add file extension '))
我正在尝试使用 python-docx 找出一些方法 add/edit 文本到预先存在的 运行。我试过 test.clear() 只是想看看我是否可以删除它,但这似乎不起作用。另外,我试过 test.add_run('test') 也没有用。我知道如何添加一个新的 运行 但它只会在段落末尾添加它,这对我没有太大帮助。目前,'print' 将输出我想在文档 "TERMOFINTERNSHIP" 中更改的文本。有什么我想念的吗?
运行 的文本可以完整编辑。所以要用 "abc" 替换 "ac" 你只需做这样的事情:
>>> run.text
"ac"
>>> run.text = "abc"
>>> run.text
"abc"
不能简单地在某个位置插入字符;您需要提取文本,使用 Python str
方法编辑 str
值,然后完全替换它。在某种思维方式中,"editing" 是在 外部 python-docx
完成的,而您只是将 python-docx
用于 "before" 和 "after" 版本。
但请注意,虽然这是事实,但在一般情况下它不太可能对您有太大帮助,因为 运行s 在一行中看似随机的位置断开。所以不能保证您的搜索字符串会出现在单个 运行 中。您将需要一种算法来定位 所有 包含搜索字符串任何部分的 运行,然后在这些 运行 中相应地分配您的编辑。
一个空的 运行 是有效的,所以当中间某处有额外的位时 run.text == ""
可能会有帮助。另请注意,运行 的格式可能不同,因此如果您的搜索字符串的一部分是粗体而另一部分不是,例如,您的结果可能与您想要的不同。
import docx
doc = docx.Document('CLT.docx')
test = doc.paragraphs[12].runs[2].text
print(test)
doc.save(input('Name of docx file? Make sure to add file extension '))
我正在尝试使用 python-docx 找出一些方法 add/edit 文本到预先存在的 运行。我试过 test.clear() 只是想看看我是否可以删除它,但这似乎不起作用。另外,我试过 test.add_run('test') 也没有用。我知道如何添加一个新的 运行 但它只会在段落末尾添加它,这对我没有太大帮助。目前,'print' 将输出我想在文档 "TERMOFINTERNSHIP" 中更改的文本。有什么我想念的吗?
运行 的文本可以完整编辑。所以要用 "abc" 替换 "ac" 你只需做这样的事情:
>>> run.text
"ac"
>>> run.text = "abc"
>>> run.text
"abc"
不能简单地在某个位置插入字符;您需要提取文本,使用 Python str
方法编辑 str
值,然后完全替换它。在某种思维方式中,"editing" 是在 外部 python-docx
完成的,而您只是将 python-docx
用于 "before" 和 "after" 版本。
但请注意,虽然这是事实,但在一般情况下它不太可能对您有太大帮助,因为 运行s 在一行中看似随机的位置断开。所以不能保证您的搜索字符串会出现在单个 运行 中。您将需要一种算法来定位 所有 包含搜索字符串任何部分的 运行,然后在这些 运行 中相应地分配您的编辑。
一个空的 运行 是有效的,所以当中间某处有额外的位时 run.text == ""
可能会有帮助。另请注意,运行 的格式可能不同,因此如果您的搜索字符串的一部分是粗体而另一部分不是,例如,您的结果可能与您想要的不同。