使用python写一段代码:将一个文件夹里面的所有文件划分为三个数据集'train'\'tsts'\'val',其中train占0.7,val占0.2,test占0.1;将他们分别存储到当前文件夹目录下
时间: 2024-03-17 12:43:38 浏览: 65
以下是一个示例代码,可以实现将一个文件夹里面的所有文件划分为三个数据集 'train'、'test'、'val',并将它们分别存储到当前文件夹目录下:
```python
import os
import random
import shutil
# 定义数据集划分比例
train_ratio = 0.7
val_ratio = 0.2
test_ratio = 0.1
# 获取当前目录下所有文件
files = os.listdir('.')
# 过滤出所有文件(不包括文件夹)
files = [f for f in files if os.path.isfile(f)]
# 计算数据集划分数量
num_files = len(files)
num_train = int(num_files * train_ratio)
num_val = int(num_files * val_ratio)
num_test = num_files - num_train - num_val
# 打乱文件顺序
random.shuffle(files)
# 创建目标文件夹
os.makedirs('train', exist_ok=True)
os.makedirs('test', exist_ok=True)
os.makedirs('val', exist_ok=True)
# 复制文件到对应的数据集文件夹
for i, f in enumerate(files):
if i < num_train:
shutil.copy(f, 'train')
elif i < num_train + num_val:
shutil.copy(f, 'val')
else:
shutil.copy(f, 'test')
```
上述代码将当前目录下的所有文件打乱顺序后,根据设定的数据集划分比例,将它们分别复制到 'train'、'test'、'val' 三个文件夹中。如果文件夹已经存在,则直接复制到已有的文件夹中。
阅读全文