Modify file codes in batches [required to process video datasets]
import os
# 所修改文件存放的路径、添加文件前缀
def reFileName(filepath, pre):
f = os.listdir(filepath)
n = 0
for i in f:
oldname = filepath + f[n]
newname = filepath + pre + "__" + f[n]
os.rename(oldname, newname)
print(oldname, "===>", newname)
n += 1
# 实现对一目录下所有子目录的文件名进行修改
if __name__ == '__main__':
# 所修改文件存放的路径的上级目录
path = 'D:/3stone/dataset/U-DETRAC/Insight-MVT_Annotation_Train/'
f = os.listdir(path)
n = 0
for size in range(len(f)):
# 所修改文件存放的路径
filepath = 'D:/3stone/dataset/U-DETRAC/Insight-MVT_Annotation_Train/' + f[n] +'/'
reFileName(filepath, f[n])
n += 1
print("reFileName done")
Batch move files
import os
import shutil
# 想获取的训练集和测试集移动至新的目录
def remove_file(old_path):
# old_path = 'D:/3stone/dataset/traffic/validation-image_2' # train 和 image都在同一个目录下,这里只读取一个路径
new_path = 'D:/3stone/dataset/U-DETRAC/Insight-MVT_Annotation_Train' # 新train图片存储目录
file_list = os.listdir(old_path) # 列出该目录下的所有文件,listdir返回的文件列表是不包含路径的。
if len(file_list) == 0:
print("该目录为空!请重新检查目录")
return
for file in file_list:
src = os.path.join(old_path, file) # 源图片目录
dsc = os.path.join(new_path, file) # 移动至train图片目录
print('src:', src)
print('dsc:', dsc)
shutil.move(src, dsc)
print('train images move succeed!')
def reFileName(filepath, pre):
f = os.listdir(filepath)
n = 0
for i in f:
oldname = filepath + f[n]
newname = filepath + pre + "_" + f[n]
os.rename(oldname, newname)
print(oldname, "===>", newname)
n += 1
# 实现对一目录下所有子目录的文件移动到其上级目录下
if __name__ == '__main__':
path = 'D:/3stone/dataset/U-DETRAC/Insight-MVT_Annotation_Train/'
f = os.listdir(path)
n = 0
for size in range(len(f)):
filepath = 'D:/3stone/dataset/U-DETRAC/Insight-MVT_Annotation_Train/' + f[n] + '/'
# reFileName(filepath, f[n])
remove_file(filepath)
n += 1
print("reFileName done")