批量顺序重命名:按原本文件的排列循序重命名,只改变文件名称,不改变前后文件的位置关系;
# 导入os包
import os
def file_rename(path, begin_num):
"""
@param path: 文件夹路径
@param begin_num: 起始命名数字
"""
# 设定文件路径
i = begin_num
# 对目录下的文件进行遍历
for file in os.listdir(path):
# 判断是否是文件
if os.path.isfile(os.path.join(path, file)) == True:
# 设置新文件名
new_name = file.replace(file, "%d.jpg" % i)
# 重命名
os.rename(os.path.join(path, file), os.path.join(path, new_name))
i += 1
# 结束
print("End")
if __name__ == '__main__':
path = './test_model/total1/'
file_rename(path, 0)
批量乱序重命名:从结果形式上看也是重命名,不仅只改变文件名称,还改变前后文件的位置关系;
import random
import os
def file_rename_shuffle(path):
"""
@param path: 文件夹路径
"""
fileList = os.listdir(path) # 获得所有文件名列表,可以print(fileList)查看
Imgnum = len(fileList)
print(Imgnum)
i = 0
L = random.sample(range(0, Imgnum), Imgnum)
print(L)
filetype = ".jpg" # 文件类型
for filename in fileList:
print(filename)
portion = os.path.splitext(filename) # 将文件名拆成名字和后缀
if portion[1] == filetype: # 检查文件的后缀
newname = str(L[i]) + filetype
print(newname)
os.rename(path+filename, path+newname) # 修改名称
i += 1
if __name__ == '__main__':
path = './test_model/test/'
file_rename_shuffle(path)
批量顺序重命名应用广泛;
批量乱序重命名多用于将两堆分类好的数据打乱;