我需要根据文件夹中的文件列表创建未知数量的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>
答案 0 :(得分:4)
您应该使用专用字典:
files = {f: np.loadtxt(f) for f in glob.glob("*.txt")}
通常,您不应混合数据和变量或属性名称。如果存在具有相同名称的文件,您的代码可能会影响任何内置的Python。
答案 1 :(得分:2)
不,你可能不应该为此使用全局变量。相反,创建一个字典或类并将值存储在其中。