docx中的单词替换

时间:2021-04-11 18:30:05

标签: python docx

我想要一个 docx 文档作为模板,扫描并用其他词替换其中的一些词。 我已经用 txt 成功地完成了,但是我不能用这个词来完成。 我写了以下代码

首先,我创建了一个字典,其中键是“旧词”,适当的值是“新词”

dict={'Name1': 'Billy', 'Vlan': '12345', 'ptp_ip_1': '10.10.10.1', 'ptp_ip_2': '10.10.10.2'}

d=docx.document(r'C:\path\Template.docx')

for p in range(0,len(d.paragraphs)):
    par=d.paragraphs[p].text
    for i in dict.keys():
        par.replace(i,dict[i])

问题是它每行打印 4 次(字典中的键/对数)

例如

'address ptp_ip_1/mask'
'address ptp_ip_1/mask'
'address 10.10.10.1/mask'
'address ptp_ip_1/mask'
'next-hop ptp_ip_2'
'next-hop ptp_ip_2'
'next-hop ptp_ip_2'
'next-hop 10.10.10.2'

然后我首先尝试查看表示“oldword”的键是否在该行上,如果仅在那时才替换字符串,但结果是我只打印了我替换的行 - 而不是那些完好无损

for p in range(0,len(d.paragraphs)):
    par=d.paragraphs[p].text
    for i in list(dict.keys()):
        if i in par:
            par.replace(i,dict[i])
        else: continue

有什么想法吗?提前致谢

0 个答案:

没有答案
相关问题