提取文件夹里80%的npy文件保存到新文件夹里
时间: 2023-07-29 17:11:17 浏览: 38
可以使用Python中的os、random和shutil模块来实现这个任务。具体步骤如下:
1. 使用os模块遍历原始文件夹中的所有文件,筛选出npy格式的文件,并将它们存储到一个列表中。
2. 使用random模块随机生成一个整数,该整数为原始文件夹中npy文件的数量乘以0.8,即80%的数量。
3. 使用列表切片操作,从npy文件列表中选择前面生成的整数个文件,将它们保存到新文件夹中。
4. 使用shutil模块复制或移动所选的npy文件到新文件夹中。
下面是一个示例代码,用于实现上述步骤:
``` python
import os
import random
import shutil
# 原始文件夹路径和新文件夹路径
source_folder = '/path/to/source/folder'
target_folder = '/path/to/target/folder'
# 遍历原始文件夹中的所有文件,存储npy格式的文件到列表中
npy_files = [os.path.join(source_folder, f) for f in os.listdir(source_folder) if f.endswith('.npy')]
# 计算需要选择的文件数量
num_files = int(len(npy_files) * 0.8)
# 随机选择num_files个文件,并将它们复制到新文件夹中
selected_files = random.sample(npy_files, num_files)
for file_path in selected_files:
shutil.copy(file_path, target_folder)
```
在上述代码中,`source_folder`和`target_folder`分别为原始文件夹和新文件夹的路径。`npy_files`列表存储了原始文件夹中所有npy格式的文件的路径。`num_files`为需要选择的文件数量,即原始文件夹中npy文件数量的80%。`selected_files`是一个包含随机选择的文件路径的列表。最后使用`shutil.copy`函数将这些文件复制到新文件夹中。