当前位置: 首页 > 知识库问答 >
问题:

使用win32com。python中的客户端如何查找和替换多个文本

燕嘉熙
2023-03-14

我正在尝试使用find and replace with win32com向Word文档添加多个字符串值。客户端Python库。

我可以找到并替换一个值,但我不知道如何对多个值执行此操作。

这就是我目前的情况:

import win32com.client
word = win32com.client.DispatchEx("Word.Application")
word.Visible = True
word.DisplayAlerts = 0
word.Documents.Open("C:\TEMP\Testing\Me.docx")
word.Selection.Find
find.Text = "First Name"
find.Replacement.Text = "John"
find.Execute(Replace=1, Forward=True)

# the following part doesn't run
find.Text = "Last Name"             
find.Replacement.Text = "Smith"
find.Execute(Replace=1, Forward=True)

word.ActiveDocument.SaveAs('C:\TEMP\Testing\Me2.docx')
word.Quit() # releases Word object from memory

有什么建议吗?

共有1个答案

柯瀚玥
2023-03-14

试试这个:

import win32com.client
from os import getcwd, listdir

docs = [i for i in listdir('.') if i[-3:]=='doc' or i[-4:]=='docx'] #All Word file

FromTo = {"First Name":"John",
          "Last Name":"Smith"} #You can insert as many as you want


word = win32com.client.DispatchEx("Word.Application")
word.Visible = True #Keep comment after tests
word.DisplayAlerts = False

for doc in docs:
    word.Documents.Open('{}\\{}'.format(getcwd(), doc))
    for From in FromTo.keys():
        word.Selection.Find.Text = From
        word.Selection.Find.Replacement.Text = FromTo[From]
        word.Selection.Find.Execute(Replace=2, Forward=True) #You made the mistake here=> Replace must be 2  
    name = doc.rsplit('.',1)[0]
    ext = doc.rsplit('.',1)[1]
    word.ActiveDocument.SaveAs('{}\\{}_2.{}'.format(getcwd(), name, ext))

word.Quit() # releases Word object from memory
 类似资料:
  • 问题内容: 我有一个大约40万行的文本文件。我需要将此文本文件导入一个程序,该程序仅接受以空格或制表符分隔的文本文件,但是此文本文件以分号分隔。我要从(Arcmap)导出文本文件的程序中没有选项来更改分隔,并且在文本文件本身中进行查找和替换实际上需要2天。 我已经搜索了一个脚本来执行此操作,但是它们似乎都用空格替换了单词文件的整个LINE,而不是单独替换了每个分号,而给我留了一个空的文本文件。 这

  • 问题内容: 我正在运行Python 2.7。 我有三个文本文件:,,和。现在,包含我要搜索的几行并将该部分替换为中的内容。这是一个简单的示例: data.txt find.txt replace.txt 所以,在上面的例子中,我要搜索的所有出现,以及在数据和更换这些线路。 我在使用正确的方法时遇到了一些麻烦,因为我的内存大约为1MB,所以我想尽可能地提高效率。一种愚蠢的方法是将所有内容连接成一个长

  • 问题内容: 我正在寻找使用python编辑XML文件。我想查找并替换标签中的关键字。过去,一位同事建立了XML模板文件,并使用“查找并替换”程序替换了这些关键字。我想使用python查找和将这些关键字替换为值。我一直在自学Elementtree模块,但是在尝试查找和替换时遇到了麻烦。我已经附上了我的XML文件的片段。您将看到一些被%包围的变量(即%SITEDESCR%),这些是我要替换的单词,然后

  • 我有100个html网页与各种文本翻译。我也有翻译文本准备在一个word文档。所以我要做的就是找到多块不同的文本,然后用多块翻译的文本替换它们。我通常使用dreamweaver,它有一个很好的查找/替换功能,但它一次只能替换一个文本/代码块。更具体地说,举个例子,假设我有3个句子(我个人有更多的句子,大约1000个不同的句子需要替换): 英文文本1、英文文本2、英文文本3。 并且想要同时将所有3个

  • 问题内容: 通常,我使用手动查找来使用phpmyadmin替换MySQL数据库中的文本。我现在已经厌倦了,如何运行查询以在phpmyadmin的整个表中查找并用新文本替换文本? 示例:find关键字,替换为。 问题答案: 进行更新 来自- 如果要从所有表进行编辑,最好的方法是先提取,然后再上传回来。

  • 通常,我使用phpMyAdmin使用手动查找替换MySQL数据库中的文本。我现在已经厌倦了,我如何运行一个查询在phpMyAdmin中的整个表中查找并用新文本替换一个文本呢? 示例:查找关键字,替换为。