import os
import shutil
import random
os是操作系统接口模块;shutil是高级文件接口模块,一般用来copy文件;random是用于打乱数据集时使用的。
root = "E:\\workspace"
dataset_dir = os.path.join(root, "data")
xxx_dir = os.path.join("..", "..", "XXX")
在拼接路径前,可以先定义根目录root,在root的基础上进行访问。此时dataset_dir = “E:\workspace\data”. 对于"…“参数,它意味着访问上一级目录。xxx_dir即在当前代码的目录下,访问上两级目录,再进入XXX文件夹。(注意:路径不要写‘\’,尽量是”\"或‘/’,因为容易跟转义字符搞混而出错)
os.walk()方法语法格式如下:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
参数
top – 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。
下面是一个例子,访问了子文件夹下的每个文件,并把jpg格式的过滤出来存入imgs中,最后拉乱了顺序:
for root, dirs, files in os.walk(dataset_dir):
for sub_dir in dirs:
imgs = os.listdir(os.path.join(root, sub_dir))
imgs = list(filter(lambda x: x.endswith('.jpg'), imgs))
random.shuffle(imgs)
img_count = len(imgs)
os.remove(path)
shutil.copy(src_path, target_path)
src_path的文件需要存在,可以使用if os.path.exists(src_path):
检测。