前言
遇到一个问题,对方给的标注文件都是有包括中文以及特殊字符的命名,这就给数据预处理造成了极大不便,因为深度学习训练时使用的有些库是不支持读除了ascii码以外的字符的。所以需要将这些文件名重新对应命名一下。
代码
这是关键点的标注文件名,有三个文件夹,image
是图像,backJson
是背部的标注文件,keysJson
是关键的标注文件。需要将这3个文件夹里面的文件名对应修改,使得修改后的文件也能够一一对应。
import os
if __name__ == "__main__":
images_dir = "./images/"
backJson_dir = "./back/"
keysJson_dir = "./keys/"
filenames = os.listdir(images_dir)
new_name_dict = {}
cnt = 0
for filename in filenames:
if filename not in new_name_dict:
new_name_dict[filename] = cnt
cnt += 1
for key, value in new_name_dict.items():
filename, extend = os.path.splitext(key)
# print(filename, extend)
# input("zzz")
print(images_dir + key, images_dir + f"{value:04d}" + f"{extend}")
print(backJson_dir + filename+".json", backJson_dir + f"{value:04d}" + ".json")
print(keysJson_dir + filename+".json", keysJson_dir + f"{value:04d}" + ".json")
os.rename(images_dir + key, images_dir + f"{value:04d}" + f"{extend}")
os.rename(backJson_dir + filename+".json", backJson_dir + f"{value:04d}" + ".json")
os.rename(keysJson_dir + filename+".json", keysJson_dir + f"{value:04d}" + ".json")