涛哥的Python脚本工具箱之批量替换目录所有指定扩展名的文件中的指定字符串

批量替换Word文档中的指定文字,包括页眉中的文字 代码主要功能是批量替换Word文档中的指定文字,包括页眉中的文字 阅读详情

今天发布刚完成的涛哥的Python脚本工具箱之批量替换目录所有指定扩展名的文件中的指定字符串,命令行参数处理改用目前比较好用的argparse库,Python代码如下:


#!/usr/bin/python2.7
# -*- encoding: UTF-8 -*-
# Copyright 2014 offbye@gmail.com


"""replace old string with new string from all files in path

批量替换目录所有指定扩展名的文件中的指定字符串

Usage: python replace_str.py -o OLD -n NEW -p YOUR_PATH   -e FILE_EXTENSION
"""

__author__ = ['"Xitao":<offbye@gmail.com>']

import sys
import os
import re
import shutil
from argparse import ArgumentParser


def replace_path(p, old, new, suffix='txt'):
    # 传递路径及两个字符串作为参数
    workdir = p
    os.chdir(workdir)
    cwd = os.getcwd()
    dirs = os.listdir(cwd)
    for tmp in dirs:
        path = os.path.join(cwd, tmp)
        #print 'path=', path
        #如果是文件
        if os.path.isfile(path):
            #判断文件扩展名
            if os.path.splitext(tmp)[1][1:] == suffix:
                with open(path) as f:
                    data = f.read()
                #print data
                data_new = re.sub(old, new, data)
                if data_new != data:
                    temp = path + ".bak"
                    with open(temp, 'wb') as fnew:
                        fnew.write(data_new)
                        shutil.move(temp, path)
                    print("replace file {0} to {1} in {2}".format(old, new, path))

                    #如果是路径,递归
        elif os.path.isdir(path):
            print("Enter dir: " + path)
            replace_path(path, old, new, suffix)


if __name__ == "__main__":
    p = ArgumentParser(usage='python replace_str.py -o OLD -n NEW -p YOUR_PATH -e FILE_EXTENSION ',
                       description='replace old string with new string from all specific extension files in path')
    p.add_argument('-o', '--old', default='', help='old string want to be replaced')
    p.add_argument('-n', '--new', default='', help='new string')
    p.add_argument('-p', '--path', default="./", help='target directory')
    p.add_argument('-e', '--ext', default="txt", help='target file extension')

    # 这个函数将认识的和不认识的参数分开放进2个变量中
    args, remaining = p.parse_known_args(sys.argv)
    print(args)
    print(remaining)

    if args.old and args.new:
        print(args.old)
        replace_path(args.path, args.old, args.new, args.ext)




批量修改文件名,把文件名中的汉字自动替换成其首字母 在平时的工作中,当我们面对几百上千的文件时,想要按照某一规则修改其文件名,手动改肯定不人性化,下面这个程序可以根据工作者需要,稍作修改,可以完成不同要求的文件名批量修改任务,本博文是在笔者工作过程中遇到这样的需求写的,本博文实现的主要功能是把文件名中的汉字自动替换成其首字母,其他不变。如果有其他要求,把代码稍作修改,相信也可以实现。如图:                               阅读详情

相关推荐

Python实现批量修改和替换文件内容的完整指南

Python文件操作是数据处理中不可或缺的部分,无论是读取数据、写入信息还是数据备份与恢复,都离不开文件操作的基本技巧。本章将介绍文件操作中最基础的几个动作:打开、读取、写入和关闭文件,并通过示例加深理解。递归遍历是一种强大的文件系统遍历技术,它能够让我们访问文件夹及其子文件夹中的所有文件和子文件夹。os.walk()是Python标准库中的一个内置函数,用于实现递归遍历。理解递归遍历对于文件系统的管理和数据处理至关重要,因为它提供了一种系统化的方式来访问嵌套的文件结构。os.walk()

weixin_35987118的博客 1501

涛哥的Python工具箱之批量删除含指定字符串行

对于一个出色的程序员来说,重复是最不能接受的事情之一,因此我们要发明工具把重复的工作自动化。以前我是用linux shell脚本来完成这些事情的,但由于shell脚本语法能力的限制,有些复杂功能无法有效快速的实现,并且写出的代码难以维护,基本属于一次性代码,很难复用。因此后面慢慢开始尝试用Python完成一些自动化脚本,由于Python语言强大的表现力和严格的书写规范,这些缺点都解决了! 最近打算把一些日常研发过程用的Python脚本逐步整理出来开源,于是就有了这个专题,希望能够帮助大家摆脱那些

西涛offbye-移动全栈技术博客 3508

批量文件名字符替换与扩展名修改实战工具指南

设计可扩展的命名模板引擎,支持占位符替换:# 支持字段映射# 替换上下文print(result) # 输出: IMG_20240501_005.jpg未来可通过正则解析中的格式化指令,动态调用.format()实现更复杂控制。

weixin_42126677的博客 1094

涛哥的Python脚本工具箱之生成带Logo的二维码

最近需要在二维码上加Logo,网上没有找到好用的,于是自己用python写了一个。需要安装qrcode,PIL库 二维码简称 QR Code(Quick Response Code),学名为快速响应矩阵码,是二维条码的一种,由日本的 Denso Wave 公司于 1994 年发明。现随着智能手机的普及,已广泛应用于平常生活中,例如商品信息查询、社交好友互动、网络地址访问等等。 安装

西涛offbye-移动全栈技术博客 3523

vhr 微人事系统安装与部署教程(SpringBoot + Vue 项目实战)

vhr(微人事)是一个开源的人力资源管理系统项目。系统采用前后端分离架构,主要技术栈包括:后端:MyBatis前端:VueElement UIAxios数据库:MySQL系统通常包含以下模块:员工管理部门管理职位管理薪资管理权限管理系统管理整体功能已经接近企业级后台系统。vhr(微人事)是一个非常经典的开源人力资源管理系统项目,基于SpringBoot + Vue 前后端分离架构。系统包含:员工管理部门管理权限管理薪资管理。

m0_69484557的博客 487

D16: OpenClaw + Notion API:知识管理新玩法

本文介绍了如何利用OpenClaw连接Notion API构建自动化知识管理系统。文章首先分析了传统知识管理的痛点,包括信息分散、更新不及时等问题,并对比了Notion与其他工具在API完整性、结构化程度等方面的优势。接着详细说明了Notion API的获取和授权流程,并设计了包含项目知识库、技术决策库和会议纪要库的三层架构系统。最后通过会议纪要自动归档的实战案例,展示了如何通过YAML配置实现从飞书会议到Notion的自动化知识沉淀流程。该方案能有效解决团队知识管理中的信息碎片化问题,提升协作效率。

刘一说的IT专栏 276

云栖社区12篇实战经验所组成的“近战”系列分享

云栖社区已经起航,独家系列干货没有最好,只有更好。第一期为12篇实战经验所组成的“近战”系列(文章、PDF和视频),包含新浪微博、淘宝搜索、美团、美丽说、淘宝推荐、小米、支付宝、阿里云、淘宝无线在内,涵盖建模、个性化推荐、排序学习、系统优化、数据监控、流量优化、架构探索等多方面一线经验总结。1.《手机淘宝推荐中的排序学习》 2.《基于微博用户关系和行为的用户建模》 3.《移动电商搜索个性化技术》 

西涛offbye-移动全栈技术博客 2234

华为OD机试真题 新系统 9月20号 【字符串分组求和】

华为OD新系统机试真题【字符串分组求和】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【字符串分组求和】解析。

qq_45776114的博客 626

Python3.7 的open()方法详解

open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) mode r open for reading in text mode(default) w open for writing, truncating(截断) the file first...

wst07261144的专栏 4397

HBase学习二:RegionServer详解

RegionServer是HBase系统中最核心的组件,主要负责用户数据写入、读取等基础操作。RegionServer组件实际上是一个综合体系,包含多个各司其职的核心模块:HLog、MemStore、HFile以及BlockCache。一个RegionServer由一个(或多个)HLog、一个BlockCache以及多个Region组成。其中,HLog用来保证数据写入的可靠性;BlockCache可以将数据块缓存在内存中以提升数据读取性能;

qwerty1372431588的博客 748

YOLO-V8训练自己的数据集之标注样本

四、标注样本 4.1、标注样本概述 4.1.1、样本标注主要方法 4.1.2、标注样本概念 4.1.3、标注样本实现方式 4.1.4、常见标注样本软件 4.2、标注工具LabelImg 4.2.1、LabelImg介绍 4.2.2、LabelImg特点 4.2.3、LabelImg安装方法 4.2.4、LabelImg使用方法 4.3、标注样本实操 4.3.1、安装标注软件Labelimg 4.3.2、Labelimg界面介绍 4.3.3、LabelImg实操过程中常

qq_29633789的博客 665

使用Python批量替换指定目录所有文件中的指定文本

使用Python批量替换指定目录所有文件中的指定文本 # -*- coding: utf-8 -*- import os from = "aaa" #替换为什么内容,可以是多行 to = """xxx yyy zzz""" def handle(rootDir): list_dirs = os.walk(rootDir) for root, dirs

luoye7422的专栏 1373

全新YOLOv11一文弄懂 | YOLOv11网络结构解读 、yolov11.yaml配置文件详细解读与说明、模型训练参数详细解析 | 通俗易懂!入门必看系列!

本文全面介绍了YOLOv11目标检测算法,包含网络结构解析、yaml配置文件详解及训练教程。YOLOv11通过改进的C3k2f模块、SPPF和C2PSA注意力机制等创新设计,在COCO数据集上实现了比YOLOv8更优的性能。文章详细解读了yolov11.yaml配置文件的参数设置、主干网络(backbone)和头部网络(head)结构,并提供了完整的训练代码示例和参数说明。训练部分涵盖了模型选择、参数设置及优化技巧,包括epochs、batch size、学习率等关键参数的调整建议。最后总结了YOLOv11

Ai缝合怪、助力小伙伴高效发论文 3万+

python批量删除行_涛哥的Python工具箱之批量删除含指定字符串行

我们在软件研发中不可避免的要用到大量的反复性的繁琐的工作,比如批量改动代码中接口的字符串。批量下载文件并又一次按规则命名。这些工作人工做特别累,尤其是对我这样的懒人来说。对于一个出色的程序猿来说,反复是最不能接受的事情之中的一个,因此我们要发明工具把反复的工作自己主动化。曾经我是用linux shell脚本来完毕这些事情的,但因为shell脚本语法能力的限制。有些复杂功能无法有效高速的实现,而且写...

weixin_39811150的博客 321

Uniapp返回上一页并刷新:亲测有效的 goBack 实现技巧!

这个技巧在实际开发中非常常用,特别适合表单提交后返回列表刷新这类场景。比起依赖onShow或复杂的vuex状态同步,这种方式更直接、好维护,也不容易出 bug。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1843

Camunda 7.x 系列【67】实战篇之撤销流程

撤销流程 即撤销当前已发起的流程实例。这是一个常见的需求,Camunda本身不提供直接的方法来撤销正在执行的流程,需要自定义处理逻辑。

记录知识、锤炼自我 1379

python批量删除特定字符_涛哥的Python工具箱之批量删除含指定字符串行

我们在软件研发中不可避免的要用到大量的反复性的繁琐的工作,比如批量改动代码中接口的字符串。批量下载文件并又一次按规则命名。这些工作人工做特别累,尤其是对我这样的懒人来说。对于一个出色的程序猿来说,反复是最不能接受的事情之中的一个,因此我们要发明工具把反复的工作自己主动化。曾经我是用linux shell脚本来完毕这些事情的,但因为shell脚本语法能力的限制。有些复杂功能无法有效高速的实现,而且写...

weixin_39970689的博客 804

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

python批量删除字段_涛哥的Python工具箱之批量删除含指定字符串行

我们在软件研发中不可避免的要用到大量的反复性的繁琐的工作,比如批量改动代码中接口的字符串。批量下载文件并又一次按规则命名。这些工作人工做特别累,尤其是对我这样的懒人来说。对于一个出色的程序猿来说,反复是最不能接受的事情之中的一个,因此我们要发明工具把反复的工作自己主动化。曾经我是用linux shell脚本来完毕这些事情的,但因为shell脚本语法能力的限制。有些复杂功能无法有效高速的实现,而且写...

weixin_39601641的博客 271

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

python替换文件的某个字符串_用Python替换文件中的字符串

将所有这些代码放入一个名为mass_replace的文件中.在Linux或Mac OS X下,您可以执行chmod x mass_replace,然后运行此操作.在Windows下,您可以使用python mass_replace后跟相应的参数来运行它.#!/usr/bin/pythonimport osimport reimport sys# list of extensions to repl...

weixin_39759890的博客 1337

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

使用Python脚本批量替换项目中的数据库地址

这几天接手到了一个很老很老的项目,PHP的,里面的数据库地址不是同一配置的。有很多子站点,每个字站点又有自己的配置文件,这个时候,问题来了,要换数据库地址了!!! 初闻这个问题,我整个人都是懵逼的,这不是搞我嘛?这么多改起来得多麻烦? 但活儿还是得做啊,于是作为一名机智的大彩笔,我决定写个Python脚本解决这个问题。 当然,这个问题可以被简单理解为,给定路径a,字符串列表b,字符串c,请将路径a...

笔墨留年。 597

python批量替换文件_python实现文件名批量替换和内容替换

#coding:utf-8import osimport os.pathpath='.'oldStr='.php'newStr='.html'for (dirpath, dirnames, filenames) in os.walk(path):for file in filenames:if os.path.splitext(file)[1]=='.html':print(file)filepa...

weixin_39863759的博客 263

python替换txt里面特定的字符串_使用python替换特定行中的字符串

我正在编写一个python脚本,用特定的扩展名(.seq)替换目录中每个文本文件的字符串。替换的字符串应该只来自每个文件的第二行,并且输出是一个新的子目录(称为clean),其文件名与原始文件相同,但后缀为*.clean。输出文件包含与原始文件完全相同的文本,但替换了字符串。我需要将所有这些字符串:“K”、“Y”、“W”、“M”、“R”、“S”替换为“N”。这就是我在谷歌搜索后想到的。这是非常混乱...

weixin_39764487的博客 1789

Python3 批量替换文本内容

Python3 批量替换文本内容 示例: # coding:utf8 import os; def reset(): i = 0 path = r"H:\asDemo\workdemo\awesome-android-ui-master\pages\\"; filelist = os.listdir(path) # 该文件夹下所有的文件(包括文件夹) ...

weixin_30894389的博客 602

python去掉字符串中的指定字符的方法

我们在使用 Python处理字符串的时候,经常会遇到一些字符串中出现了指定字符,比如以下代码: 上面代码中的#就是一个指定字符,在 python中,如果使用#替换为指定字符,那么就会报错。当我们对需要处理的字符进行替换的时候,我们都会使用两个函数: 其中第一个是 for循环函数,第二个是 replace函数。 第一个函数主要用于替换指定的字符;第二个函数主要用于删除指定的字符。 但是,在使用 for循环时,它不能对字符串进行修改,因此我们需要使用 replace函数来去掉指定的字符。 首先我们要将

花生日记 1万+
上一篇: Python你必须知道的十个库
下一篇: Linux CentOS 6.5服务器上安装pip,requests库
offbye
offbye 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄24年 1309粉丝 252原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

offbye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值