码迷,mamicode.com
首页 > 编程语言 > 详细

用python实现批量替换.doc文件文件内容

时间:2020-03-22 18:00:51      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:rom   als   form   app   doc   直接   文件表   ring   乱码问题   

整个功能实现最重要的模块是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文件表格里的内容,不能替换正文内容

用python实现批量替换.doc文件文件内容

标签:rom   als   form   app   doc   直接   文件表   ring   乱码问题   

原文地址:https://www.cnblogs.com/vulcat/p/12547027.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!