用python写一个提取文件里全部npy格式的文件到另外一个文件夹
时间: 2023-03-28 14:01:46 浏览: 166
你好,我是C知道,我可以回答您的问题。以下是提取文件夹中全部npy格式文件到另外一个文件夹的Python代码:
```python
import os
import shutil
# 原始文件夹路径
source_folder = "path/to/source/folder"
# 目标文件夹路径
target_folder = "path/to/target/folder"
# 遍历原始文件夹中的所有文件
for file_name in os.listdir(source_folder):
# 判断文件是否为npy格式
if file_name.endswith(".npy"):
# 构造原始文件路径和目标文件路径
source_file = os.path.join(source_folder, file_name)
target_file = os.path.join(target_folder, file_name)
# 复制文件到目标文件夹
shutil.copyfile(source_file, target_file)
```
希望能帮到您!
相关问题
提取文件夹里80%的npy文件保存到新文件夹里
可以使用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`函数将这些文件复制到新文件夹中。
把文件夹里的npy文件提出来80%保存到新文件夹里
可以使用Python中的NumPy库来实现这个问题。以下是一个示例代码,可以将文件夹中所有的.npy文件提取出来,并将80%的数据保存到新文件夹中。
``` python
import os
import numpy as np
import shutil
# 原始文件夹路径和目标文件夹路径
src_folder = 'path/to/source/folder'
dst_folder = 'path/to/destination/folder'
# 获取所有.npy文件的路径
file_paths = [os.path.join(src_folder, f) for f in os.listdir(src_folder) if f.endswith('.npy')]
# 遍历所有.npy文件
for file_path in file_paths:
# 加载.npy文件
data = np.load(file_path)
# 获取80%的数据
n_samples = int(data.shape[0] * 0.8)
data_80 = data[:n_samples, :]
# 获取文件名(不包含路径和后缀)
file_name = os.path.splitext(os.path.basename(file_path))[0]
# 构造新文件的路径
new_file_path = os.path.join(dst_folder, file_name + '_80.npy')
# 保存80%的数据到新文件中
np.save(new_file_path, data_80)
# 打印进度
print(f'Saved {n_samples} samples from {file_path} to {new_file_path}')
```
需要注意的是,以上代码假设所有.npy文件都是二维数组,其中第一个维度表示样本数,第二个维度表示特征数。如果你的.npy文件的维度不同,需要稍作修改。另外,以上代码只是提供了一种实现方法,您可以根据自己的需求进行修改。
阅读全文