zoukankan      html  css  js  c++  java
  • 用python实现批量替换.doc文件文件内容

    整个功能实现最重要的模块是docx这个模块

    安装语句

    pip install python-docx

    docx模块只能操作.docx文件,所以在这之前我们要将.doc文件转换成.docx。.doc文件是不能直接转换成.docx文件的,如果直接改后缀名会引起文件打不开或者乱码问题。

    所以我们需要将文件另存为.docx格式。

    import sys
    import pickle
    import re
    import codecs
    import string
    import shutil
    from win32com import client as wc
    import docx
    import os
     
    path = "C:\Users"#需修改文件所在文件夹
    files = []#需修改文件列表
    #读取文件夹中文件列表
    for file1 in os.listdir(path):
        if file1.endswith(".doc"):
            files.append(file1)
     
    def doSaveAas(files):
        word = wc.Dispatch('Word.Application')
        for docname in files:
            temp='C:\Users\{}'.format(docname) 
            doc = word.Documents.Open(temp)        # 目标路径下的文件
            new_world = docname + "x"
            doc.SaveAs(u'C:\Users\{}'.format(new_world), 12, False, "", True, "", False, False, False, False)  # 转化后路径下的文件    
            doc.Close()
        word.Quit()
    
    doSaveAas(files)
    

    转化为docx文件后我们要来实现将指定目标替换的功能了,我需要实现的功能是将文件表格里的日期进行替换

    import os
    import docx
    
    #读取需要操作的文件的列表
    path = "C:\Users"
    files = []#生成的文件队列
    for file1 in os.listdir(path):
        if file1.endswith(".docx"):
            files.append(path+"\"+file1)
    
    #替换词
    def exchange(docname,old_word,new_word):#old_word是将要被替换的词,new_word是替换词
        for table in doc.tables:
            for row in table.rows:
                for cell in row.cells:
                    cell.text = cell.text.replace(old_word,new_word)
    
    for file2 in files: 
        doc = docx.Document(file2)        
        exchange(file2,"old_word","new_word")
        doc.save(file2)
        print("{}替换完成".format(file2))
    
    

    这段代码仅能替换docx文件表格里的内容,不能替换正文内容

  • 相关阅读:
    缓存穿透、缓存并发和缓存雪崩笔记
    PHP递归的三种方式
    Yii2 rules 自定义规则
    Yii redis hash散列的使用
    Yii redis set集合的使用
    手动安装 yii2-redis 扩展
    PHP添加redis扩展(windows环境)
    Yii redis list列表的使用
    用hextoraw解决update、delete语句执行慢
    Oracle查看SQL执行计划,分析SQL性能
  • 原文地址:https://www.cnblogs.com/vulcat/p/12547027.html
Copyright © 2011-2022 走看看