使用docx更新Word文档的问题

问题描述

我对此真的很陌生,所以请保持温柔。我一直在找几个小时来解决这个问题。本质上,我试图打开Word文档,在我放入的一个非常简单的表中找到“ X”字符,然后将其更新为用户输入的内容。我在这里所做的最后一件事是将此函数命名并调用它,以查看是否可以解决我认为遇到的一些问题,以正确捕获用户的输入。看起来像下面的IDLE。我正在尝试用卷心菜代替X,所以这是下面显示内容。问题是,运行此命令后,我打开了word文档(现在是第N次),并且它没有更新为说“白菜”。我在这里可能做错了什么?我没有收到任何错误消息。我已经试过了没有函数函数调用的情况,但是没有:

@H_404_2@>>> import os >>> from docx import Document >>> import docx >>> doc=Document('Temp.docx') >>> def tupdate(rep): for table in doc.tables: for col in table.columns: for cell in col.cells: for p in cell.paragraphs: if 'X' in p.text: p.text.replace("X",rep) >>> rep = input() Cabbage >>> tupdate(rep) >>> doc.save('Temp.docx')

任何帮助将不胜感激。我正在Windows上使用最新版本的python。

谢谢。

解决方法

p.text.replace("X",rep)不进行就地替换。

我已经测试了下面的代码,并且能够用Zs替换Xs。

import os

from docx import Document

doc = Document('Temp.docx')
rep = 'Z'  # input()

for table in doc.tables:
    for col in table.columns:
        for cell in col.cells:
            for p in cell.paragraphs:
                if 'X' in p.text:
                    p.text = p.text.replace("X",rep)

doc.save('Temp.docx')