代码结构:主目录下有若干子目录,子目录中均包含若干图片或者txt文件
分别对jpg图片和txt文件写了代码:
主目录路径和目标文件夹请根据个人情况完成
jpg图片:(获取第200张到279张)
import os
import shutil
# 指定包含子文件夹的文件夹路径
folder_path = "E:/datasetbf/mydata/valdata"
# 创建一个单独的目标文件夹
target_folder = "E:/datasetbf/mydata/uavchange/images/val2"
if not os.path.exists(target_folder):
os.makedirs(target_folder)
i = 0
# 循环遍历每个子文件夹
for subdir, _, files in os.walk(folder_path):
i = i+1
print(i)
# 对文件进行排序
files.sort()
# 计数器,用于限制每个子文件夹中的图片数量
count = 0
# 循环遍历每个文件
for file in files:
# 增加计数器
count += 1
# 检查文件扩展名是否为图片(可以根据需要修改扩展名)
if file.endswith(".jpg") :
if count >200 and count <= 279:
# 构建原始文件的完整路径
file_path = os.path.join(subdir, file)
# 将文件移动到目标文件夹中
shutil.move(file_path, target_folder)
# 如果计数器超过200,则退出循环
if count > 300:
break
# 如果需要,可以在此处添加其他逻辑来处理超过200张的情况
txt文件:(获取第200个到第300个)
import os
import shutil
# 指定包含子文件夹的文件夹路径
folder_path = "E:/datasetbf/mydata/valdata"
# 创建一个单独的目标文件夹
target_folder = "E:/datasetbf/mydata/uavchange/labels/val2"
if not os.path.exists(target_folder):
os.makedirs(target_folder)
i = 0
# 循环遍历每个子文件夹
for subdir, _, _ in os.walk(folder_path):
# 计数器,用于限制每个子文件夹中的 txt 文件数量
count = 0
i = i + 1
print(i)
# 对txt文件进行遍历
txt_folder_path = os.path.join(subdir, "txt")
if os.path.exists(txt_folder_path):
txt_files = os.listdir(txt_folder_path)
txt_files.sort() # 排序txt文件
for txt_file in txt_files:
if txt_file.endswith(".txt"):
# 构建txt文件的完整路径
count += 1
txt_file_path = os.path.join(txt_folder_path, txt_file)
if count >= 201 and count <=300:
# 将txt文件复制到目标文件夹中
shutil.copy(txt_file_path, target_folder)
# 增加计数器
# 如果计数器超过200,则退出循环
if count > 300:
break
# 如果需要,可以在此处添加其他逻辑来处理超过200个文件的情况