Python常用功能函数系列总结(七)
本节目录
常用函数一:批量文件重命名
常用函数一:批量文件重命名
# -*- 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常用功能函数系列总结(一)
本节目录 常用函数一:获取指定文件夹内所有文件 常用函数二:文件合并 常用函数三:将文件按时间划分 常用函数四:数据去重 写在前面 写代码也有很长时间了,总觉得应该做点什么有价值的事情,写代码初始阶段 ...
- Python常用功能函数系列总结(二)
本节目录 常用函数一:sel文件转换 常用函数二:refwork文件转换 常用函数三:xml文档解析 常用函数四:文本分词 常用函数一:sel文件转换 sel是种特殊的文件格式,具体应用场景的话可以 ...
- Python常用功能函数系列总结(三)
本节目录 常用函数一:词频统计 常用函数二:word2vec 常用函数三:doc2vec 常用函数四:LDA主题分析 常用函数一:词频统计 # -*- coding: utf-8 -*- " ...
- Python常用功能函数系列总结(六)
本节目录 常用函数一:词云图 常用函数二:关键词清洗 常用函数三:中英文姓名转换 常用函数四:去除文本中的HTML标签和文本清洗 常用函数一:词云图 wordcloud # -*- coding: ...
- Python常用功能函数系列总结(五)
本节目录 常用函数一:向量距离和相似度计算 常用函数二:pagerank 常用函数三:TF-IDF 常用函数四:关键词提取 常用函数一:向量距离和相似度计算 KL距离.JS距离.余弦距离 # -*- ...
- Python常用功能函数系列总结(四)之数据库操作
本节目录 常用函数一:redis操作 常用函数二:mongodb操作 常用函数三:数据库连接池操作 常用函数四:pandas连接数据库 常用函数五:异步连接数据库 常用函数一:redis操作 # -* ...
- Python常用功能函数总结系列
Python常用功能函数系列总结(一) 常用函数一:获取指定文件夹内所有文件 常用函数二:文件合并 常用函数三:将文件按时间划分 常用函数四:数据去重 Python常用功能函数系列总结(二) 常用函数 ...
- Python常用功能函数
Python常用功能函数汇总 1.按行写字符串到文件中 import sys, os, time, json def saveContext(filename,*name): format = '^' ...
- Python 常用string函数
Python 常用string函数 字符串中字符大小写的变换 1. str.lower() //小写>>> 'SkatE'.lower()'skate' 2. str.upper ...
随机推荐
- 重新整理 .net core 实践篇——— UseEndpoints中间件[四十八]
前言 前文已经提及到了endponint 是怎么匹配到的,也就是说在UseRouting 之后的中间件都能获取到endpoint了,如果能够匹配到的话,那么UseEndpoints又做了什么呢?它是如 ...
- 修复Apache Log4j任意代码执行漏洞安全风险通告
2021年12月10日 0x01漏洞背景 Apache Log4j 是 Apache 的一个开源项目,Apache Log4j2是一个基于Java的日志记录工具.该工具重写了Log4j框架,并且引入了 ...
- 调整markdown 图片大小和对齐方式
[博客园]调整markdown 图片大小和对齐方式 图片大小 例 <img src="https://img2020.cnblogs.com/blog/2199257/202101/2 ...
- 按照eslint的规则格式化代码
1.下载eslint. 2.首选项->设置,然后搜索eslint,点击在setting.json中设置.设置内容如下: "editor.codeActionsOnSave": ...
- 位置式PID讲解
table { margin: auto } 一.公式拆解 \(PID\)公式展示: \[u(t)=K_p(e(t)+\frac{1}{T_t } ∫_0^te(t)dt+T_D \frac {de( ...
- threejs 贴图动画总结
引言 在三维可视化中,会涉及到很多动画,其中贴图动画是其中很重要的一种,本文介绍几种贴图动画的思路,供大家一起探讨. 流动动画 流动动画通过设置贴图的repeat属性,并不断改变贴图对象的offset ...
- Table.ReplaceValue替换…Replace…(Power Query 之 M 语言)
数据源: 任意数据源,包括文本和非文本两列 目标: 对数据进行替换操作 操作过程: [主页](或[转换])>[替换值] M公式: = Table.ReplaceValue( 表, 查找值, 替换 ...
- Windows通过计划任务定时执行bat文件
第一步 第二步 第三步 第四步 第五步 第六步
- Python基础入门(7)- Python异常处理机制
1.初识异常 1.1.什么是异常与异常处理 异常就是错误 异常会导致程序崩溃并停止运行 能监控并捕获异常,将异常部位的程序进行修理使得程序继续正常运行 1.2.异常的语法 1 # coding:utf ...
- 两阶提交、三阶提交、TCC框架
首先介绍一下分布式事务,分布式事务是指会涉及到操作多个数据库的事务.其实就是将对同一库事务的概念扩大到了对多个库的事务.目的是为了保证分布式系统中的数据一致性.分布式事务处理的关键是必须有一种方法可以 ...