python之怎样去批量修改文件名呢
发布时间:2022-08-25 10:33:52 所属栏目:交互 来源:互联网
导读:1. 批量修改文件名 例子: 把b站下载的长文件名替换为短的 说明: 去掉文件名中共同的部分 import os # 修改文件 def rename(data_dir: str, is_loop: bool, old: str, new: str): fileList = os.listdir(data_dir) for file_name in fileList: full_file_name
1. 批量修改文件名 例子: 把b站下载的长文件名替换为短的 ''' 说明: 去掉文件名中共同的部分 ''' import os # 修改文件 def rename(data_dir: str, is_loop: bool, old: str, new: str): fileList = os.listdir(data_dir) for file_name in fileList: full_file_name = os.path.join(data_dir, file_name) # 遍历所有文件夹中的文件 if os.path.isdir(full_file_name): if is_loop: rename(full_file_name, is_loop, old, new) else: continue new_name = file_name.replace(old, new, -1) full_new_name = os.path.join(data_dir, new_name) if full_file_name == full_new_name: continue print(full_file_name) print(f'替换 {full_new_name}') os.rename(full_file_name, full_new_name) pass # 最外层的文件夹 data_path = r'2021年最新爬虫+反爬+js逆向(配套完整项目)_' old = '' new = '' rename(data_path, True, old, new) 2. 网盘分享通过: 替换: 网盘会审核文件名, 所以,干脆所有文件名都只用数字表示,顺便给自己网站打一波广告 0400 第402章 决胜的关键.m4a => 0400{discuz.elandcloud.com}.m4a import os import re def rename(data_dir: str, ptn: re.Pattern, new_repl: str, is_loop: bool): fileList = os.listdir(data_dir) for file_name in fileList: full_file_name = os.path.join(data_dir, file_name) # 遍历所有文件夹中的文件 if os.path.isdir(full_file_name): if is_loop: rename(full_file_name, ptn, is_loop) else: continue new_name = ptn.sub(new_repl, file_name) full_new_name = os.path.join(data_dir, new_name) os.rename(full_file_name, full_new_name) pass data_path = r'D:1.sourcepythonpathxmly-paiddata琅琊榜' ptn = re.compile(r'(d+).*?(.m4a)') # 选择要保留的组,g<1>表示第1组(就是前面的数字),g<2>表示第2组(就是.m4a) new_repl = r'g<1>{discuz.elandcloud.com}g<2>' rename(data_path, ptn, new_repl, True) (编辑:咸宁站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |