有没有办法在引用原始列表时将列表元素转换为独立变量?

问题描述 投票:1回答:2

我想从目录中获取一种类型(.npy)的所有文件,并将它们转换为使用numpy中的np.load从.npy文件调用数据的命名变量。

我用glob来创建一个类型的文件列表,但是我似乎找到了一个很好的方法来继续。

os.chdir("/Users/Directory/")
dir_path = os.getcwd()

file_names = sorted(glob.glob('*.npy'))
file_names = file_names[:]
for f in file_names:
    print(f)
EELS 10nmIF 16nm.npy
EELS 4nmIF 16nm.npy
EELS Background.npy

我想要输出的是一组带有名称的变量:

EELS 10nmIF 16nm
EELS 4nmIF 16nm
EELS Background

并且每个变量都会使用np.load调用.npy文件中的数据,这样基本上它看起来像这样:

EELS 10nmIF 16nm = np.load(dir_path + EELS 10nmIF 16nm.npy)
EELS 4nmIF 16nm = np.load(dir_path + EELS 4nmIF 16nm.npy)
EELS Background = np.load(dir_path + EELS Background.npy)
python dictionary for-loop instance-variables
2个回答
1
投票

您可以使用list comprehension创建一个新的修剪文件名列表。

variables = [f[0:-4] for f in file_names]

然后,您可以使用此列表的内容执行任何操作,包括加载每个文件:

for v in variables:
    np.load(dir_path + v + '.npy')

或者,跳过上述步骤,直接加载所有文件:

for f in file_names:
    np.load(dir_path + f)

我可能会忽略你的问题,所以也许this answer有你需要的东西。


0
投票

我不是100%肯定,但我认为你不能在python(或我知道的任何其他语言)的运行时分配变量名,但你可以做的是使用一个字典,其中文件名为关键,然后使用object作为包含文件数据的值

© www.soinside.com 2019 - 2024. All rights reserved.