Python 在引用原始列表时,是否有方法将列表元素转换为自变量?

Python 在引用原始列表时,是否有方法将列表元素转换为自变量?,python,dictionary,for-loop,instance-variables,Python,Dictionary,For Loop,Instance Variables,我想从目录中获取一种类型(.npy)的所有文件,并将它们转换为命名变量,使用np.load from numpy调用.npy文件中的数据 我已经使用glob创建了一个一种类型的文件列表,但是我似乎找到了一个很好的方法来继续 os.chdir(“/Users/Directory/”) dir_path=os.getcwd() 文件名=已排序(glob.glob('*.npy')) 文件名=文件名[:] 对于文件名中的f: 印刷品(f) 鳗鱼10nmIF 16nm.npy 鳗鱼4nmIF 16nm.

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

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

os.chdir(“/Users/Directory/”)
dir_path=os.getcwd()
文件名=已排序(glob.glob('*.npy'))
文件名=文件名[:]
对于文件名中的f:
印刷品(f)
鳗鱼10nmIF 16nm.npy
鳗鱼4nmIF 16nm.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)

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

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)

不过,我可能没有抓住你问题的重点,所以可能有你需要的。

再想一想,你实际上可以在python中通过提取和操作代码的AST来实现这一点。但是,这将完全违背您试图实现的目的这在许多语言中确实是可能的,甚至在python中,您也可以执行
globals()[“foo”]=“bar”
来分配全局变量
foo
。但是,python中不允许在名称中包含空格的变量。谢谢您的建议。我认为这个答案与答案很接近,但我要寻找的是一个结果,其中“EELS 10nmIF 16nm.npy”成为一个变量,我可以调用该变量,[EELS 10nmIF 16nm]将显示该变量包含的数据数组。您打算如何调用这些变量?例如,在命令行或脚本中的其他地方一次一个?更多关于为什么需要按文件名手动加载文件的信息会有所帮助。