使用
运行程序,根据提示,输入需要批量重命名文件的路径;
控制台会输出显示搜索到的文件
根据需要选择相应编号:批量添加前缀;批量添加后缀;删除指定内容
图解
根据提示,输入需要批量改名的文件路径
如下图所示:
选择1:将在所有文件开头增加
选择2:将在所有文件末尾增加
选择3:将搜索所有文件,匹配你输入的内容;无论该内容是在改文件的开头、中间、末尾,都能识别到并且删除;
不小心输错了内容或者选错了功能怎么办?
别着急,从控制台上可以看见改名前的文件名称,复制下来,再次通过本程序便可批量复原名称;不必在意误操作;
这种情形下恢复成原来的名称:只需要选择3;输入希望删除的内容'墨穹'
代码
import os def scan_mp4_files(directory): mp4_files = [] for root, dirs, files in os.walk(directory): for file in files: if file.endswith('.mp4'): mp4_files.append(os.path.join(root, file)) return mp4_files def get_file_name(file_path): return os.path.basename(file_path) def rename_file(file_path, new_name): directory = os.path.dirname(file_path) new_file_path = os.path.join(directory, new_name) os.rename(file_path, new_file_path) def main(): directory = input("请输入扫描路径(0 默认上次): ") mp4_files = scan_mp4_files(directory) if not mp4_files: print("没有找到任何MP4文件。") return print("\n找到的MP4文件:") for file_path in mp4_files: print(get_file_name(file_path)) print("\n选择重命名操作:") print("1. 添加前缀") print("2. 添加后缀") print("3. 删除指定名称") choice = input("请输入选项: ") prefix = input("请输入前缀: ") if choice == '1' else '' suffix = input("请输入后缀: ") if choice == '2' else '' to_remove = input("请输入要删除的部分名称: ") if choice == '3' else '' for file_path in mp4_files: file_name = get_file_name(file_path) base_name, ext = os.path.splitext(file_name) # 分割文件名和扩展名 if choice == '1': new_name = prefix + base_name + ext elif choice == '2': new_name = base_name + suffix + ext elif choice == '3': if to_remove in base_name: new_name = base_name.replace(to_remove, '') + ext else: # 如果不符合删除条件,则跳过该文件,使用原名 new_name = file_name continue # 注意这里的continue,它会跳过下面的重命名代码块 else: # 如果选择了无效的选项,则不修改文件名 new_name = file_name continue # 实际上,这里可以省略,因为下面不会执行重命名操作 # 检查新文件名是否已存在(在同一个目录下) new_full_path = os.path.join(os.path.dirname(file_path), new_name) if new_full_path != file_path and os.path.exists(new_full_path): print(f"警告:新文件名 '{new_name}' 已存在,文件 '{file_name}' 重命名失败。") else: rename_file(file_path, new_name) print(f"文件 '{file_name}' 已重命名为: '{new_name}'") if __name__ == "__main__": while (1): main()
结束
本代码部分由Chat-gpt完成,由本人修善后发表,不代表本人实际水平;