python随机打乱文件夹内文件并划分训练集、测试集、验证集分别存入三个文件夹,给出具体代码
时间: 2024-05-02 16:23:19 浏览: 77
python实现将两个文件夹合并至另一个文件夹(制作数据集)
感谢您的提问,以下是实现您所需功能的Python代码:
```python
import os
import random
import shutil
data_dir = "/path/to/your/folder/" # 替换成你的文件夹路径
train_dir = "/path/to/your/train/folder/" # 替换成你的训练数据存储路径
test_dir = "/path/to/your/test/folder/" # 替换成你的测试数据存储路径
val_dir = "/path/to/your/validation/folder/" # 替换成你的验证数据存储路径
random.seed(42) # 设置随机种子,保证每次生成的随机序列相同
files = os.listdir(data_dir)
random.shuffle(files)
train_files = files[:int(0.7*len(files))]
test_files = files[int(0.7*len(files)):int(0.85*len(files))]
val_files = files[int(0.85*len(files)):]
for file in train_files:
shutil.copy2(os.path.join(data_dir, file), os.path.join(train_dir, file))
for file in test_files:
shutil.copy2(os.path.join(data_dir, file), os.path.join(test_dir, file))
for file in val_files:
shutil.copy2(os.path.join(data_dir, file), os.path.join(val_dir, file))
```
解释一下代码实现的思路:
1. 首先设置随机种子,保证每次生成的随机序列相同,这样可以保证每次运行程序生成的数据集相同;
2. 列出文件夹中的所有文件名,并将它们随机打乱;
3. 按照训练集、测试集、验证集的比例划分数据集;
4. 将划分好的数据集按照文件名复制到对应的文件夹中。
希望这个代码对您有帮助!
阅读全文