用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文件表格里的内容,不能替换正文内容

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

时间: 2024-10-18 03:46:53

用python实现批量替换.doc文件文件内容的相关文章

批量替换多个文件里边的字符串

一.批量递归查找包含字符串的所有文件 grep 命令用于查找在文件里符合条件的字符串 grep -rl "B" /root/ceshi/* 参数解释: -r 递归查找 -l 列出匹配的文件名 -n 列出所在的行号 * 代表ceshi目录下的所有文件 --include="*.text" 只查找后缀名是.text的文件 --exclude="*.sql" 查找除了后缀名是.sql的文件 示例一: [[email protected] ~]# gre

linux sed 批量替换多个文件中的字符串

转载:http://blog.csdn.net/kauu/article/details/1757325 一.linux sed 批量替换多个文件中的字符串 sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir` 例如:替换/home下所有文件中的www.bcak.com.cn为bcak.com.cn sed -i "s/www.bcak.com.cn/bcak.com.cn/g" `grep ww

linux sed 批量替换多个文件中的字符

格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` linux sed 批量替换多个文件中的字符串 sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir` 例如:替换/home下所有文件中的www.admin99.net为admin99.net sed -i "s/www.admin99.net/admin99.net/g" `grep w

linux批量替换多个文件中的字符串

一.linux sed 批量替换多个文件中的字符串 sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir` 例如:替换当前目录下所有文件中的log.txt为test.log sed -i "s/log.txt/test.log/g" `grep log.txt -rl /home` 二.下面这条命令: find ./ -type f 此命令是显示当前目录下所有的文件 上面的"s|ABCD|

shell脚本批量替换文件名和文件的内容

方法1: 这两天在做camera bringup的时候,需要添加chromatic文件,由于有需要太多的文件里面的内容进行替换,手工一个个改文件配置有点不太实际,所以google了一下,找到批量替换文件内容的好方法,命令结构如下: grep "被替换的字符串" * -R | awk -F: '{print $1}' | sort | uniq |xargs sed-i 's/被替换的字符串/替换后的字符串/' 例如:如果我们需要将当前目录下所有文件中的250替换为38,则,命令为: g

PHP用正则批量替换Img中src内容,用正则表达式获取图片路径实现缩略图功能

PHP用正则批量替换Img中src内容,用正则表达式获取图片路径实现缩略图功能 网上很多正则表达式只能获取或者替换一个img的src内容,或者只能替换固定的字符串,要动态替换多个图片内容的试了几个小时才解决. /*** 图片地址替换成压缩URL* @param string $content 内容* @param string $suffix 后缀*/function get_img_thumb_url($content="",$suffix="!c550x260.jpg&q

shell 批量替换文本中的内容

批量替换脚本文件中的目录/proc,为/etc/init.d [[email protected] course_04]# more test.sh  #!/bin/bash DIR=/proc aa=`ls $DIR` echo $aa 验证是否全部修改完成

批量替换url,指定内容不替换

如果需要批量替换url的某几部分,当然是用正则了比如在CI框架中要把 <img src="pc/baidu/aa.jpg"> 替换成 <img src="<?php echo base_url('pc/baidu/aa.jpg');?>"> 对应的正则式是这样写的: 1 src="(.*?)" //正则匹配这样写 2 src="<?php echo base_url\('$1'\);?>&

Python脚本--批量更改本地md文件的图片链接

#-*- coding:utf-8 -*- import re import os def patch_md(filename): if filename.endswith('.md'): return True return False def _patch_replace(text): pattern=re.compile(r'(?<=!)\[.*\]\((.*)(?=\))') result = re.findall(pattern,text)for filedir in result: