win批量重命名
代码
import os
import sys
def open_file(path, recursive, deep):
tag = ""
file_names = os.listdir(path)
for _ in range(0, deep):
tag += tag.join("\t")
for name in file_names:
sub_path_name = os.path.join(path, name)
# 是文件夹
if (os.path.isdir(sub_path_name)):
if recursive:
print(tag + "+---" + name)
deep += 1
open_file(sub_path_name, recursive, deep)
deep -= 1
else:
continue
# 是文件
else:
rename(path, name, tag + "|--")
def rename(path, name, tag):
if filter_file(name) is False:
return
new_name = get_name(name)
if name == new_name:
print(tag + name + " is already exists")
return
print(tag + "new name : " + new_name)
old_file_name = path + "/" + name
new_file_name = path + "/" + new_name
os.rename(old_file_name, new_file_name)
# 重写这个方法来过滤文件
def filter_file(ref_name):
# 按文件后缀过滤文件
if ref_name.endswith(".fbx") is False:
# print(tag + name + " is not a .fbx file, skip")
return False
return True
# 重写这个方法来命名文件
def get_name(ref_name):
ref_name = "anim@" + ref_name
return ref_name
print("****************************************************")
print("command : ")
print(" .py [path] ")
print(" .py [path] -r")
print("****************************************************")
print()
path = ""
recursive = False
argvs_len = len(sys.argv) - 1
if argvs_len == 1:
path = sys.argv[1]
if argvs_len == 2:
path = sys.argv[1]
if (sys.argv[2] == "-r"):
recursive = True
else:
Exception("error command : " + sys.argv[2] + ". Use [-r] instead.")
open_file(path, recursive, 0)
# --------------------------------
# for arg in sys.argv:
# print(arg)
# gpus = [int(gpus.split(','))]
# batch_size = sys.argv[2]
# print(batch_size)
# --------------------------------
使用方法
cmd 键入
python.exe rename_batch.py [path] -r
?
[path]
即需要重命名文件的根目录,-r
开启文件夹递归。
?重写
get_name
方法,自定义文件命名规则。
?重写
filter_file
方法,自定义文件过滤规则。