本节目录

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

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

# -*- 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常用功能函数系列总结(七)的更多相关文章

  1. Python常用功能函数系列总结(一)

    本节目录 常用函数一:获取指定文件夹内所有文件 常用函数二:文件合并 常用函数三:将文件按时间划分 常用函数四:数据去重 写在前面 写代码也有很长时间了,总觉得应该做点什么有价值的事情,写代码初始阶段 ...

  2. Python常用功能函数系列总结(二)

     本节目录 常用函数一:sel文件转换 常用函数二:refwork文件转换 常用函数三:xml文档解析 常用函数四:文本分词 常用函数一:sel文件转换 sel是种特殊的文件格式,具体应用场景的话可以 ...

  3. Python常用功能函数系列总结(三)

    本节目录 常用函数一:词频统计 常用函数二:word2vec 常用函数三:doc2vec 常用函数四:LDA主题分析 常用函数一:词频统计 # -*- coding: utf-8 -*- " ...

  4. Python常用功能函数系列总结(六)

    本节目录 常用函数一:词云图 常用函数二:关键词清洗 常用函数三:中英文姓名转换  常用函数四:去除文本中的HTML标签和文本清洗 常用函数一:词云图 wordcloud # -*- coding: ...

  5. Python常用功能函数系列总结(五)

    本节目录 常用函数一:向量距离和相似度计算 常用函数二:pagerank 常用函数三:TF-IDF 常用函数四:关键词提取 常用函数一:向量距离和相似度计算 KL距离.JS距离.余弦距离 # -*- ...

  6. Python常用功能函数系列总结(四)之数据库操作

    本节目录 常用函数一:redis操作 常用函数二:mongodb操作 常用函数三:数据库连接池操作 常用函数四:pandas连接数据库 常用函数五:异步连接数据库 常用函数一:redis操作 # -* ...

  7. Python常用功能函数总结系列

    Python常用功能函数系列总结(一) 常用函数一:获取指定文件夹内所有文件 常用函数二:文件合并 常用函数三:将文件按时间划分 常用函数四:数据去重 Python常用功能函数系列总结(二) 常用函数 ...

  8. Python常用功能函数

    Python常用功能函数汇总 1.按行写字符串到文件中 import sys, os, time, json def saveContext(filename,*name): format = '^' ...

  9. Python 常用string函数

    Python 常用string函数 字符串中字符大小写的变换 1. str.lower()   //小写>>> 'SkatE'.lower()'skate' 2. str.upper ...

随机推荐

  1. [源码解析] PyTorch 分布式(15) --- 使用分布式 RPC 框架实现参数服务器

    [源码解析] PyTorch 分布式(15) --- 使用分布式 RPC 框架实现参数服务器 目录 [源码解析] PyTorch 分布式(15) --- 使用分布式 RPC 框架实现参数服务器 0x0 ...

  2. Redis cluster 集群命令合集

    目录 一.常用命令 二.操作命令 三.redis-trib.rb脚本 一.常用命令 打印集群的信息 CLUSTER INFO 列出集群当前已知的所有节点(node),以及这些节点的相关信息. CLUS ...

  3. Declarative Pipeline 基础语法

    Declarative Pipeline(声明式)核心概念 核心概念用来组织pipeline的运行流程 1.pipeline :声明其内容为一个声明式的pipeline脚本 2.agent:执行节点( ...

  4. Nginx模块之nginx_upstream_check_module

    目录 一.介绍 二.使用 三.参数 一.介绍 大家都知道,前端nginx做反代,如果后端服务器宕掉的话,nginx是不能把这台realserver剔除upstream的,所以还会有请求转发到后端的这台 ...

  5. Kafka从入门到放弃(三)—— 详说消费者

    之前介绍了Kafka以及生产者,包括它的一些特性和参数,这回写一下消费者. 之前没看得可以点击链接阅读. Kafka从入门到放弃(一) -- 初识Kafka Kafka从入门到放弃(二) -- 详说生 ...

  6. 系统分析师教程(张友生)高清pdf下载

    最近准备考系统分析师,故找了一本张又生编著的<系统分析师教程>的电子书,本来想买本书,可惜有点小贵,舍不得,故寻找电子版下载,花了不少时间才找到,现在分享给大家. http://item. ...

  7. cmake之譬判断cmake的版本

    note 有时候,可能使用的cmake语法 与cmake的版本有关系, 比如modern cmake. 这时候我们可以在 CMAKELISTS.TXT中 判断 cmakeLists.txt 代码 if ...

  8. Lucene 基础数据压缩处理

    Lucene 为了使的信息的存储占用的空间更小,访问速度更快,采取了一些特殊的技巧,然 而在看 Lucene 文件格式的时候,这些技巧却容易使我们感到困惑,所以有必要把这些特殊 的技巧规则提取出来介绍 ...

  9. 【LeetCode】1012. Complement of Base 10 Integer 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  10. [LeetCode] 448. Find All Numbers Disappeared in an Array 找到数组中消失的数字

    题目描述 给定n个数字的数组,里面的值都是1-n,但是有的出现了两遍,因此有的没有出现,求没有出现值这个数组中的值有哪些. 要求不能用额外的空间(除了返回列表之外),时间复杂度n 思路 因为不能用额外 ...