tszr

吴裕雄--天生自然python学习笔记:python文档操作批量替换 Word 文件中的文字

我们经常会遇到在不同的 Word 文件中的需要做相同的文字替换,若是一个一个
文件操作,会花费大量时间 。 本节案例可以找出指定目录中的所有 Word 文件(包含
子目录),并对每一个文件进行指定的文字替换操作。
案例要求
把 replace 目录(包含子目录〉下所有 Word 文件中自甘“方法”都替换为“ method ”
下图中左图为 replace\s ubReplace\e lse.docx 文件替换后的结果,右图为在命令窗口中
显示的所有进行过替换操作的 Word 文件。
import os
from win32com import client
from win32com.client import constants

word = client.gencache.EnsureDispatch(\'Word.Application\')
word.Visible = 0
word.DisplayAlerts = 0

runpath = "F:\\pythonBase\\pythonex\\ch08\\replace"  #获取replace文件夹的路径
tree = os.walk(runpath)  #取得目录树
print("所有 Word 文件:")
for dirname, subdir, files in tree:
    allfiles = []   
    for file in files:  # 取得所有.docx .doc文件,存入allfiles列表中
        ext = file.split(".")[-1]  #取得文件名后缀
        if((ext=="docx") or (ext=="doc")):  #取得所有.docx .doc文件
            allfiles.append(dirname + \'\\\' + file)  #加入allfiles列表     
         
    if(len(allfiles) > 0):  #如果有符合条件的文件
        for dfile in allfiles:
            print(dfile)
            doc = word.Documents.Open(dfile)  #打开文件
            word.Selection.Find.ClearFormatting()
            word.Selection.Find.Replacement.ClearFormatting()
            word.Selection.Find.Execute("方法",False,False,False,False,False,True,constants.wdFindContinue,False,"method",constants.wdReplaceAll)
            doc.Close()
word.Quit()

 

 

发表于 2019-12-12 17:31  吴裕雄  阅读(1647)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-12-01
  • 2021-12-04
  • 2022-12-23
  • 2021-11-27
  • 2021-11-29
  • 2022-01-24
  • 2022-12-23
猜你喜欢
  • 2021-12-15
  • 2022-12-23
  • 2021-11-21
  • 2022-12-23
  • 2021-11-29
  • 2022-12-23
  • 2022-02-07
相关资源
相似解决方案