两个目标两个:

1. 输入一组文件名,进行批量重命名;

2. 输入一组目录名,批量重命名各个目录下的文件。

附加功能:

1. 可根据文件的创建日期对文件重新排序;

2. 重命名方式为递增数列,可带前后缀;

3. 可以指定输出目录,如果不指定输出目录,则在原文件夹中重命名,默认为在原文件夹中进行重命名;

4. 可指定在重命名后删除原文件(只有输出目录不同时有效),默认为不删除。

代码:

importos#获取目录下的子目录defsubdirs(path):

dl=[];foriinos.walk(path, False):fordini[1]:

dl.append(os.path.join(path, d))returndl#获取目录下的子文件defsubfiles(path):

fl=[];foriinos.walk(path, False):forfini[2]:

fl.append(os.path.join(path, f))returnfl#根据文件创建时间对文件进行排序deffsort(files):

files.sort(key=lambdas: os.path.getctime(s))returnfiles#递增数列生成器classgen:def__init__(self, prefix='', suffix='', seed=1, digit=3):

self.prefix=prefix

self.suffix=suffix

self.seed=seed

self.digit=digit

self.it=seed-1defgennext(self):

self.it+=1return'{0}{1:0{3}d}{2}'.format(self.prefix, self.it, self.suffix, self.digit)defcopy(self):returngen(self.prefix, self.suffix, self.seed, self.digit)classrenamer:def__init__(self, files, ngen=None, delsrc=False, output=''):

self.it=0

self.total=0

self.files=files

self.delsrc=delsrc

self.target=outputif(ngenisNone): self.namegen=gen()elif(isinstance(ngen, gen)): self.namegen=ngenelse:raise(TypeError,'ngen参数只接受gen类型的对象')defrename(src, des, delsrc):

os.rename(src, des)if(delsrc==True):

os.remove(src)defrun(self):

self.it=0

self.total=len(self.files)forfinself.files:

dn=os.path.dirname(f)

ex=os.path.splitext(f)

nn=self.namegen.gennext()+ex[1]

np=''sd=self.target==''if(sd):

np=os.path.join(dn, nn)else:

np=os.path.join(self.target, nn)print('rename: %s'%(np))

renamer.rename(f, np, sdandself.delsrc)

self.it+=1print('%d work(s) done'%(self.it))print()#重命名给定列表中的所有文件deffs_rename(files, resort=False, ngen=gen(), delsrc=False, output=''):if(resort): fsort(files)

rn=renamer(files, ngen.copy(), delsrc, output)

rn.run()#重命名给定目录中的所有文件defds_rename(dirs, resort=False, ngen=gen(), delsrc=False, output=''):fordindirs:

fs=subfiles(d)if(resort): fsort(fs)print('%d file(s) in %s'%(len(fs), d))if(output=='') ngen=ngen.copy()

rn=renamer(fs, ngen, delsrc, output)

rn.run()

说明

fs_rename方法对一组文件进行批量重命名。

参数说明:

files: 文件列表;

resort: 是否重新排列文件(按创文件建时间),默认为False;

ngen: 一个gen类型的对象,用于产生文件名;

delsrc: 是否删除原文件,默认为False;

output: 输出路径,默认为'',表示在原文件家中重命名。

ds_rename方法对一组目录中的文件进行批量重命名。

参数说明:

dirs: 目录列表;

resort: 是否重新排列文件(按创文件建时间),默认为False;

ngen: 一个gen类型的对象,用于产生文件名;

delsrc: 是否删除原文件,默认为False;

output: 输出路径,默认为'',表示在原文件家中重命名。

gen类型构造函数创建数列发生器。

参数说明:

prefix: 前缀字符串;

suffix: 后缀字符串;

seed: 起始数;

digit: 数为宽,不够用0补齐。

subdirs方法获取一个目录下的子目录,并返回完整路径。

subfiles方法获取一个目录下的所有文件,并返回完整路径。

fsort方法对一组文件根据其创建时间进行重新排序。

python renamer模块_Python - 批量文件重命名相关推荐

  1. Python语言编程之批量文件重命名

    最近从BILIBILI上批量下载了一批视频教程,挺好的.但是文件名很长很糟糕..所以用Python重命名文件,非常方便... 代码如下: import osfolder = r'E:\BiLiBiLi ...

  2. Python:对图片批量进行重命名

    Python:对图片批量进行重命名 参考链接:https://www.cnblogs.com/znh8/p/11809737.html 将视频转化为图片,以帧的形式进行命名, 如 0.jpg.1.jp ...

  3. 生成Yolox检测负样本-对应空文件夹txt、批量文件重命名、批量转化三通道去除小图

    1.生成Yolox检测负样本-对应空文件夹txt import os.path import cv2 from tqdm import tqdmpath = r"G:\pachong\fuy ...

  4. ogg批量配置_Macos上一款批量文件重命名工具A Better Finder Rename 11

    如何快速批量重命名文件呢?Macos上一款批量文件重命名工具A Better Finder Rename 11. A Better Finder Rename 11 mac​www.macw.com ...

  5. ogg批量配置_Mac批量文件重命名A Better Finder Rename11.07直装

    A Better Finder Rename 11 for Mac是一款适用于Mac系统的批量文件重命名工具,支持对文件进行修改,也包括对音乐.图片的名字更改,还可以按照更改的时间,对文件进行排序.除 ...

  6. 批量文件重命名工具:A Better Finder Rename 11 for Mac

    a better finder rename mac中文破解版是mac上一款强大的批量文件重命名工具,可以帮助用户通过应用各种模式快速批量重命名多个文件,a better finder rename ...

  7. 【批量获取文件名及批量文件重命名】

    批量获取文件名及批量文件重命名 批量获取文件名 1.批量获取文件名 批量文件重命名 2.批量文件重命名 本次操作所用文件路径及该目录下所有文件如下图: 批量获取文件名 1.批量获取文件名 步骤一:新建 ...

  8. python工具 - 批量文件重命名

    日常工作中经常会遇到这样的情况,需要将某个文件夹下的文件按着一定的规则进行重命名,当文件数量及其庞大的时候手工一个一个的去修需要耗费大量的时间,以下python工具可以协助批量修改文件名. 场景:某文 ...

  9. 这几个批量文件重命名工具,一个比一个好用

    日常工作中需要将大量文件重命名,一个个修改实在是太麻烦了.下面教你一个方法,只需要双击鼠标,就能批量修改文件名,一起来学习吧. 第一步:获取文件路径 首先我们需要将所有文件放在一个文件夹中,按下[Ct ...

最新文章

  1. 人人都能学会的python编程教程3:字符串和编码
  2. 微软职位内部推荐-Senior Software Engineer II-Search
  3. RobotFrameWork(五)控制流之if语句——Run Keyword If
  4. 如何在 ABAP Development Tool 创建新的 ABAP Cloud 项目
  5. Valgrind概述
  6. php ==gt;,谈谈PHP中的 -gt;、=gt; 和 :: 符号 - 易采站长站
  7. voms下的反射大师_晓星说数学:让数学家折服的艺术大师埃舍尔
  8. 简要介绍无刷电机的基础知识
  9. 修心三不:不生气不计较不抱怨
  10. H5页面调用扫一扫功能
  11. 设计模式-单例模式,观察者模式
  12. 施一公讲解如何提高阅读英语的能力
  13. 常量和常变量(const)
  14. 苹果手机最近删除的照片删除了怎么恢复?
  15. html是用cdn资源,网站常用前端公共库CDN服务资源(百度+360)
  16. 在线ico图标制作、python代码实现ico格式转换
  17. 安利三个好用视频配音乐的软件
  18. 七巧板复原之剩余区域的计算-多边形的加减法计算
  19. 微信小程序下发消息通知
  20. a标签 rel属性

热门文章

  1. Windiws环境安装轻量级文件服务器ftpserver
  2. Redis数据类型--字符串类型
  3. android studio 调用c++,android studio配置opencv,调用c++,处理图像
  4. 读取扫码枪输入_为何超市“扫码枪”这么强?不输密码钱就没了,现在知道还不晚...
  5. java国家电网面试试题_国家电网笔试面试相关
  6. javaee 中文帮助文档_大牛耗时三天整理的:微服务+Nginx+Kubernetes实战文档和面试题...
  7. html 页面重复度高,html – CSS背景渐变重复问题
  8. 读取mysql数据到select_MySQL数据库8(十三)高级数据操作之select指令
  9. 如何转obj_Java 开发中如何正确的踩坑,看完这个你可以避免50%的错误
  10. Python reload 函数 - Python零基础入门教程