背景
工作中总有各种场景,需要批量修改文件的名字,但是一个一个的该实在是太麻烦而且太费时间了,所以干脆写了个批量修改文件名的脚本。
代码
import sys import os import re def rename(find, replace, local_file_path): file_list = os.listdir(local_file_path) # 得到进程当前工作目录 current_path = os.getcwd() # 将当前工作目录修改为待修改文件夹的位置 os.chdir(local_file_path) # 名称变量 num = 1 # 遍历文件夹中所有文件 for file_name in file_list: # 进行匹配 new_name = re.sub(find, replace, file_name) # 文件重新命名 os.rename(file_name, new_name) # 改变编号,继续下一项 num = num + 1 print("completed!") # 改回程序运行前的工作目录 os.chdir(current_path) # 刷新 sys.stdin.flush() to_find = '' to_replace = '' local_file_path = '' if sys.argv[1]: to_find = sys.argv[1] else: print('params error find!') quit() length = len(sys.argv) if length > 2 and sys.argv[2]: to_replace = sys.argv[2] else: to_replace = '' if length > 3 and sys.argv[3]: local_file_path = sys.argv[3] else: local_file_path = './' rename(find=to_find, replace=to_replace, local_file_path=local_file_path)
使用
说明: python3 rename.py [要替换的文件名部分] [替换后的名字] [需替换文件所在的文件夹地址]
ps: 也可直接cd到文件所在目录,然后运行脚本,此时参数3则忽略,参数2默认值为空