问题:大量名称中带有数字的图片/视频,根据名称中数字按照一定的等差数列来排序,并且放入指定对应的文件夹中。
import os
import shutil
import re
path = "/home/dyx/code/sign_language/sign-language-gesture-recognition-master/lsa64_hand_videos" # 绝对路径
# 新建64个文件夹,编号1-64
sort_folder_number = [x for x in range(1,65)]
for number in sort_folder_number:
new_folder_path = os.path.join(path, "%s"%number)
if not os.path.exists(new_folder_path):
os.makedirs(new_folder_path)
# 列出文档
file_list = os.listdir(path)
print(file_list)
# 提取出文档名称内的数字,并根据数字决定将问价发往那个文件夹
for i in range(len(file_list)):
old_file_path = os.path.join(path, file_list[i])
if os.path.isdir(old_file_path):
pass
elif not os.path.exists(old_file_path):
pass
else:
file_name_number = re.findall(r"\d+", file_list[i])[0]
file_name_number = int(file_name_number)
new_file_path = os.path.join(path,"%s"%(file_name_number%65))
shutil.move(old_file_path, new_file_path)
最终实现效果如图,每个文件夹内分配了50个文件。