python - 制作一个 Python 脚本来加载目录中的所有 npy/npz 文件

标签 python numpy namespaces scope

我想将所有 npy/npz 文件加载到我的交互式 python shell 中,所以我不必去:

var1 = np.load('var1.npy')

每一个。我制作了这个脚本,但它不起作用,因为变量命名空间就在脚本中(假装缩进是正确的)。执行此操作的正确方法是什么?

def load_all():
import numpy as np
from os import listdir
from os.path import isfile, join
from os import getcwd

mypath = getcwd()
print 'loading all .npy and .npz files from ',mypath
files = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]

for f in files:  
    if f[-4:] in ('.npy','.npz'):
        name = f[:-4]+'_'+f[-3:]
        print 'loading', f, 'as', name
        var = np.load(f)
        exec(name + " = var")

最佳答案

我会使用 glob .例如,glob.glob('*.np[yz]') 将返回当前目录中所有 .npy 和 .npz 文件名的列表。然后您可以遍历该列表,依次加载每个文件名。您是否试图将加载它们的结果放入与文件名匹配的局部变量中?有比这更安全的设计 - 我会使用单个字典并将名称用作键,例如:

numpy_vars = {}
for np_name in glob.glob('*.np[yz]'):
    numpy_vars[np_name] = np.load(np_name)

关于python - 制作一个 Python 脚本来加载目录中的所有 npy/npz 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21355583/

相关文章:

python - 如何在python中使用套接字处理https客户端?制作代理服务器

python - 在 numpy 数组中将 3 个值表示为 1

python - 从 Numpy 3D 数组到 2D 数组的转换

swift - 消除跨 Swift 模块的初始化器歧义

c# - 在 XML 中选择特定节点列表

c# - 使用 XElement.Load 时如何添加(或忽略)XML 命名空间

python - 为什么 "not(True) in [False, True]"返回 False?

python - 说明 Hadoop 与 RabbitMQ+Celery 的用例

python - OpenCV:将帧矩阵保存到文本文件

python - 如何定义多个需求文件?