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

2024-06-16 09:28:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从一个目录中获取一种类型(.npy)的所有文件,并将它们转换为命名变量,使用np.load from numpy调用.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

每个变量都会调用.npy文件中的数据,比如使用np.load,基本上如下所示:

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)

Tags: 文件数据path目录类型namesosdir
2条回答

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

您可以使用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可能有你需要的东西

相关问题 更多 >