谷歌搜索引擎入口google,广州网站运营专业乐云seo,哪个网站可以做行程,怎么开发一个网站功能描述#xff1a;批量重命名指定目录下的文件#xff0c;文件名加前缀#xff0c;默认格式为“目录名_原文件名”。
代码
import argparse
import os
import sys
import logging
def gen_args():说明-----解析命令行参数parser a…功能描述批量重命名指定目录下的文件文件名加前缀默认格式为“目录名_原文件名”。
代码
import argparse
import os
import sys
import logging
def gen_args():说明-----解析命令行参数parser argparse.ArgumentParser(prog批量文件重命名工具, description批量重命名目录中的文件名, 新文件名为目录名_文件名)parser.add_argument(-d, --dir, typestr, requiredTrue, help必填, 待处理目录名)parser.add_argument(-p, --prefix, typestr, help可选, 待修改文件名的前缀, 默认同目录名)parser.add_argument(-r, --replace, actionstore_true, help修改文件名, 默认不修改)parser.add_argument(-v, --version, actionversion, version批量文件重命名工具, version 1.2, help打印版本信息)args parser.parse_args()return args
def batchRename(directory_name: str, prefix: str, isReplace: bool False):说明-----重命名文件参数-----directory_name: str待批量重命名文件的目录prefix: str文件重命名的前缀isReplace: bool是否对文件进行重命名, 默认不修改, 避免重命名后的文件名不符合要求if not os.path.exists(directory_name):logging.critical(f目录 {directory_name} 不存在)sys.exit(1)for file in os.listdir(directory_name):# 如果前缀和目录名一致, 则中间建一个下划线if directory_name prefix:new_filename f{prefix}_{file}else:new_filename f{prefix}{file}logging.info(f新文件名: {os.path.join(directory_name,new_filename)})if isReplace:os.rename(os.path.join(directory_name,file),os.path.join(directory_name,new_filename))# 提示信息if isReplace:logging.info(文件重命名完成)else:logging.warning(未指定 -r, 文件名将不修改)
if __name__ __main__:# 自定义日志配置logFormat f[%(asctime)s] [%(levelname)s] %(filename)s[line:%(lineno)d] %(message)slogging.basicConfig(levellogging.INFO, formatlogFormat, datefmt%Y-%m-%d %H:%M:%S)args gen_args()directory_name args.dir# 如果未手动指定前缀, 修改后的文件名前将加上目录名作为前缀if args.prefix is None:prefix directory_nameelse:prefix args.prefixbatchRename(directory_name, prefix, args.replace)
pyinstaller打包
自己用的话可以直接运行python脚本如果给别人用一般借助pyinstaller打包成二进制可执行文件。代码中用到的也都是标准库创建一个虚拟环境后pip装个pyinstaller就行了。
# 打包示例。结果文件在dist目录
pyinstaller -F batch_rename.py --clean