当前位置: 首页 > news >正文

一个批量更改文件名的Python脚本

本程序要解决的需求是这样的:

比如有一堆用随机字符串命名的文件,需要改成形如:a001.xxx, a002.xxx ...
或是一堆形如:a1.xxx, a2.xxx .... a100.xxx,需要改成:a001.xxx, a002.xxx ... a100.xxx
又或者是一堆长短不一的文件名,需要在前/后面加一个前后缀什么的……

程序的用法如下:

renpat.py [-R] [-T] dir srcpattern destpattern
-R : 包括子目录
-T : 仅测试并显示,但不执行改名操作
srcpattern : 使用正则表达式匹配源文件名,用括号提取所需要的部分,注意“.”等字符需要用“/”转义
destpattern : 使用宏替换构造目标文件名,$[1-9]对应源文件名中提取出来的部分,$c为内置计数器,可以用%对目标内容进行格式化,只支持s和d两种类型
例1 : renpat.py . (.*?)/.jpg prefix$1.jpg -- aa.jpg => prefixaa.jpg
例2 : renpat.py . (.*?)/.jpg $1%($c)02d.jpg -- aa.jpg => aa01.jpg
例3 : renpat.py . (.*?)([0-9]*?)/.jpg $1%($2)03d.jpg --aa11.jpg => aa011.jpg

嗯,我承认这个东东是有点Geek,非专业人士还是不推荐了。但是对于专业人士来说还是蛮好用的。^O^

补充:感谢令狐帮助发现并修正了一个BUG,今天14:30之前下载的TX请麻烦重新下载一下。

python源程序,基于GPL V2发布(下载:2kBytes,Revision:061230)。

相关文章:

  • iphone开机白苹果_苹果iPhone6s开机白苹果进不去是怎么回事?
  • win10命令提示符怎么打开_技巧,win10蓝屏SYSTEM_PTE_MISUSE怎么解决
  • be confident of/in/with应该如何区分?
  • xgboost算法_【模型篇】XGBoost模型
  • sqlserver2000内存突破4g_荣耀Play4T系列发布:麒麟810加持! 4G时代的终结者
  • 我的垃圾培训造就众多高中学历者高薪就业
  • hdmi接口有什么用_当贝投影仪HDMI(ARC)接口是什么意思?
  • English中一些常用近意词的区别
  • qq修改实名认证已达上限_王者荣耀实名认证修改方法
  • js怎么写返回的值赋给某个hidden的值_如何写一个Android inline hook框架
  • consider的用法
  • axios下载大文件_python 小文件下载、大文件下载、异步批量下载 教程
  • kafka maven没有下载_kafka是什么?kafka仅仅是属于消息 中间件吗?
  • 玩转“网上邻居”之故障分析
  • kafka原理_Kafka 原理简介
  • Angular4 模板式表单用法以及验证
  • ES6 学习笔记(一)let,const和解构赋值
  • HTTP那些事
  • HTTP--网络协议分层,http历史(二)
  • k8s如何管理Pod
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Python3爬取英雄联盟英雄皮肤大图
  • React 快速上手 - 07 前端路由 react-router
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • vue中实现单选
  • Yeoman_Bower_Grunt
  • 构造函数(constructor)与原型链(prototype)关系
  • 警报:线上事故之CountDownLatch的威力
  • 前端面试总结(at, md)
  • 小程序开发中的那些坑
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​决定德拉瓦州地区版图的关键历史事件
  • #define,static,const,三种常量的区别
  • $.ajax中的eval及dataType
  • (1)虚拟机的安装与使用,linux系统安装
  • (11)MSP430F5529 定时器B
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (已解决)什么是vue导航守卫
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .Net Remoting常用部署结构
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .Net6使用WebSocket与前端进行通信
  • @ComponentScan比较
  • @vue/cli脚手架
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [④ADRV902x]: Digital Filter Configuration(发射端)
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [C# WPF] 如何给控件添加边框(Border)?