python将文件夹按3:1:1的
时间: 2024-05-01 20:22:00 浏览: 51
python将地址拆分为:省市区
比例随机分成训练集、验证集和测试集,该怎么做呢?
可以使用Python中的os和shutil库来实现这个功能。具体的步骤如下:
1. 首先,需要导入os和shutil库,并指定待处理的文件夹路径。
```python
import os
import shutil
folder_path = "your/folder/path"
```
2. 然后,获取文件夹下的所有文件名。
```python
file_names = os.listdir(folder_path)
```
3. 接着,根据3:1:1的比例计算出训练集、验证集和测试集的文件数量,并随机选择相应数量的文件。
```python
import random
train_ratio = 0.6
val_ratio = 0.2
test_ratio = 0.2
num_files = len(file_names)
num_train = int(num_files * train_ratio)
num_val = int(num_files * val_ratio)
num_test = num_files - num_train - num_val
train_files = random.sample(file_names, num_train)
file_names = [f for f in file_names if f not in train_files]
val_files = random.sample(file_names, num_val)
test_files = [f for f in file_names if f not in val_files]
```
4. 最后,将训练集、验证集和测试集的文件移动到对应的文件夹中。
```python
train_folder = "train_folder"
val_folder = "val_folder"
test_folder = "test_folder"
for f in train_files:
shutil.move(os.path.join(folder_path, f), os.path.join(train_folder, f))
for f in val_files:
shutil.move(os.path.join(folder_path, f), os.path.join(val_folder, f))
for f in test_files:
shutil.move(os.path.join(folder_path, f), os.path.join(test_folder, f))
```
注意要先创建好训练集、验证集和测试集的文件夹。
阅读全文