使用np.load加载带references前缀的所有文件报错求助
解决np.load使用通配符加载文件报错的问题
np.load() 不支持直接通过通配符(*)匹配多个文件,它仅能接收单个具体的文件路径,所以你直接传入/scratch/abc/results/references_*会被当作完整文件名,导致找不到对应文件。
可以借助glob模块先匹配到所有符合条件的文件路径,再逐个加载处理,具体代码如下:
import numpy as np import glob # 获取路径下所有以references_开头的文件(如果是特定格式,比如.npy,可写成references_*.npy) target_files = glob.glob("/scratch/abc/results/references_*") # 检查是否找到文件 if not target_files: raise FileNotFoundError("未找到任何以references_开头的文件") # 若所有文件内的数组结构一致,可合并为一个大数组 ex1 = np.concatenate([np.load(file) for file in target_files], axis=0) # 若文件结构不同,可将加载结果存入列表单独处理 # ex1 = [np.load(file) for file in target_files]
补充说明
- 如果目标文件是特定格式(如
.npz压缩文件),只需修改glob.glob的匹配规则,比如写成/scratch/abc/results/references_*.npz - 使用
np.concatenate时需确保所有加载的数组维度匹配,否则会报错,此时建议用列表存储单独处理每个数组
内容的提问来源于stack exchange,提问作者GiorgioT
相关产品推荐
相关产品推荐

