本节目录

常用函数一:批量文件重命名

常用函数一:批量文件重命名

# -*- coding: utf-8 -*-

"""

DateTime : 2021/02/08 10:29

Author : ZhangYafei

Description: 批量文件重命名

"""

import os

def rename(path, prefix: str = None, suffix: str = None, replace: dict = None, append: bool = False, remove: bool = False, file_type: bool = False):

origin_path = path

dir_path, path = os.path.split(path)

path, file_type_suffix = path.rsplit('.', maxsplit=1) if file_type else (path, None)

if append:

if prefix:

path = f'{prefix}{path}'

if suffix:

path = f'{path}{suffix}'

if replace:

for key, val in replace:

path = path.replace(key, val)

elif remove:

if prefix and path.startswith(prefix):

path = path[len(prefix):]

if suffix:

path = path[:-len(suffix)]

if replace:

for key, val in replace:

path = path.replace(key, val)

elif replace:

for key in replace:

path = path.replace(key, replace[key])

if file_type:

path = f'{path}.{file_type_suffix}'

if dir_path:

path = os.path.join(dir_path, path)

os.rename(origin_path, path)

print(f'{origin_path} rename to {path} success.')

def batch_file_rename(dir_path: str, only_file: bool = False, only_dir: bool = False, prefix: str = None, suffix: str = None, replace: dict = None, append: bool = False, remove: bool = False, file_type: bool =False):

"""

批量文件重命名

:param dir_path: 文件夹名称

:param only_file: 是否仅修改文件

:param only_dir: 是否仅修改文件夹

:param prefix: 前缀

:param suffix: 后缀

:param replace: 替换

:param append: 插入

:param remove: 删除

:param file_type: 文件类型

:return:

"""

if not any([append, remove, replace]):

raise Exception('append OR remove OR replace at least one is not None.')

if only_file:

for base_path, folders, files in os.walk(dir_path):

for file in files:

file_path = os.path.join(base_path, file)

rename(file_path, prefix=prefix, suffix=suffix, replace=replace, append=append, remove=remove, file_type=file_type)

elif only_dir:

for base_path, folders, files in os.walk(dir_path):

for folder in folders:

folder_path = os.path.join(base_path, folder)

rename(folder_path, prefix=prefix, suffix=suffix, replace=replace, append=append, remove=remove, file_type=file_type)

else:

for base_path, folders, files in os.walk(dir_path):

for folder in folders:

folder_path = os.path.join(base_path, folder)

rename(folder_path, prefix=prefix, suffix=suffix, replace=replace, append=append, remove=remove, file_type=file_type)

for file in files:

file_path = os.path.join(base_path, file)

rename(file_path, prefix=prefix, suffix=suffix, replace=replace, append=append, remove=remove, file_type=file_type)

if __name__ == '__main__':

# batch_file_rename('data', suffix='[张亚飞出品]', append=True, file_type=True)

# batch_file_rename('data', replace={'[张亚飞出品]': ''})

# batch_file_rename('data', prefix='[张亚飞]', append=True)

batch_file_rename('data', prefix='[张亚飞]', remove=True)

运行结果

python常用功能_Python常用功能函数系列总结(七)相关推荐

  1. python常用英文缩写_python常用英文单词

    application 应用程式 应用.应用程序 application framework 应用程式框架.应用框架 应用程序框架 architecture 架构.系统架构 体系结构 argument ...

  2. python一些常用方法_python常用的一些技巧

    python常用的一些技巧 1.三目操作符 2.鸭子类型(duck typing) 首先Python不支持多态,也不用支持多态,python是一种多态语言,崇尚鸭子类型.以下是维基百科中对鸭子类型得论 ...

  3. python文件目录操作方法_Python常用的文件及文件路径、目录操作方法汇总介绍

    python的文件和路径操作函数基本上位于os和os.path模块中. os.listdir(dirname):列出dirname下的目录和文件 os.path.isdir(name):判断name是 ...

  4. python脚本名_python获取类名函数名、脚本路径

    1).python获取当前运行的类名函数名import inspect def get_current_function_name(): return inspect.stack()[1][3] cl ...

  5. python map用法_Python中 map()函数的用法详解

    python map()函数问题 使用map()函数生成一个值D但是检测D的长度时,只能测一次,一次之后D似不知道你的dataSet 是什么数据,是否是从数据库取出来的结果游标, 如果是的 那么dat ...

  6. python中int的功能_Python内置函数int()高级用法

    int()函数常用来把其他类型转换为整数,例如: >>> int(3.2) 3>>> int(1/3) 0 其实,int是Python内置类型之一,之所以能够当作函 ...

  7. python中定义函数常用关键字_Python 中定义函数的关键字是 _________________ 。_学小易找答案...

    [其它]实验4-串和数组-实验任务书.docx [填空题]表达式 'abc' in ['abcdefg'] 的值为______________. [填空题]已知 x = range(1,4) 和 y ...

  8. python字典均值_Python常用基础语法(函数)汇总

    重点( 要求 ): 1.理解语法( 函数 )的作用. 2.理解语法( 函数 )运用举例的代码块. 一.修改字符串(针对英文字符串)大小写. (1)title() : 将字符串(英文)开头字母装换为大写 ...

  9. python中int函数的功能_python中int函数的用法

    int(x)函数(实际上是一个类,初学者可以将其当成一个函数)中的参数x可以是一个数值,也可以是一个字符串. 如果x是一个数值,那么这个函数就是一个向0取整的函数 ,比如 如果x是一个字符串,intx ...

最新文章

  1. 自定义Linq的Distinct
  2. 【数据库】Redis/MongoDB/MySQL/Oracle随笔索引
  3. Spring-AOP @AspectJ进阶之绑定类注解对象
  4. java的流对象和一些方法
  5. [2019人工智能实战_廖盈嘉]第1次个人作业
  6. python 时间序列异常值_python中缺少时间序列值
  7. 性能测试之JMeter测试结果写入Excel
  8. 我的世界f服务器自定义皮肤,我的世界服务器皮肤指令
  9. Unity粒子特效系列-闪星星的宝箱
  10. TI 杯2019年全国大学生电子设计竞赛题
  11. 安装Alfa Awus 1900 驱动到 Kali Linux
  12. 微信小程序ssm电影院购票+后台管理系统|前后分离VUE
  13. php excel 导出图片,phpexcel 导出多张图片
  14. Markdown小菜狗子笔记
  15. arm linux fpu,ARM处理器的浮点运算单元(FPU)
  16. PHP如何把word文档转换为html
  17. SuperMap iObject常见问题解答集锦(四)
  18. matplotlib 减少subplot空白
  19. 设计模式——(四)设计模式原则___依赖倒转原则
  20. 实验三-香农编码的MATLAB实现

热门文章

  1. pyQt5-label常用方法
  2. 华硕vm510l最大支持多大内存_华硕vm510l与w519l区别
  3. Spark 实时处理 总文章
  4. 毕业设计Java web塞北村镇旅游网站设计源码+论文+视频+截图
  5. allegro封装库找不到了
  6. 计算机教室管理使用标准,计算机教室管理标准制度.doc
  7. 观点:开放式元宇宙将释放每个人的创造力
  8. 2021年衡水中学高考成绩查询,2019年衡水中学的高考成绩会怎样,看看往年的战绩就明白了...
  9. 国家超级计算机 甘霖,国家超级计算无锡中心主任助理甘霖:让“中国超算”扬威世界...
  10. 链表结点的物理顺序与逻辑顺序