使用全局字典来创建变量

时间:2012-02-23 22:55:30

标签: python variables numpy

我需要根据文件夹中的文件列表创建未知数量的python变量。

我发现我可以使用全局字典来创建和初始化这些变量:

# libraries import
import os.path
import glob
import numpy as np

# list of all the text files in the folder
list = glob.glob("*.txt")

# creation of the variables based on the name of each file
for file in list:
    shortname = os.path.splitext(file)[0]
    globals()[shortname] = np.loadtxt(file) 

但是,我想知道在python中访问变量赋值的全局字典是否是一个好习惯(当我们事先不知道变量的数量和名称时)或者是否有更好的替代方法。 / p>

2 个答案:

答案 0 :(得分:4)

您应该使用专用字典:

files = {f: np.loadtxt(f) for f in glob.glob("*.txt")}

通常,您不应混合数据和变量或属性名称。如果存在具有相同名称的文件,您的代码可能会影响任何内置的Python。

答案 1 :(得分:2)

不,你可能不应该为此使用全局变量。相反,创建一个字典或类并将值存储在其中。