从目录中的文件创建一堆对象

Create a bunch of objects from files in a directory

我制作了一个 class 用于操作和处理我的数据。

class DataSet():
    def __init__(self, path, label_names, ohe_names, random_state=420):
        self.df = pd.read_csv(path)
        self.random_state = random_state
        self.encodings = LabelEncoder() 
        self.scaler = StandardScaler()

并且我想为目录中的每个文件创建一个新的数据集对象,数据集的名称就是文件名。

目前我有这个代码。

for file in os.listdir('data/'):
    name = file[:-4]
    path = 'data/'+file

每个 name,例如 'fox',都应该是一个名为 name/fox 的新 DataSet 对象。我怎样才能做到这一点?

希望这是有道理的。提前致谢。

我想通了。

for file in os.listdir('data/'):
    name = file[:-4]
    path = 'data/'+file
    exec("{} = DataSet('{}')".format(name, path))
    

鉴于您对自己的答案感到满意,您还应该考虑将 DataSet 实例存储在容器中。我建议 dict:

frames = {}
for file in os.listdir('data/'):
    name = file[:-4]
    path = 'data/'+file
    frames[name] = DataSet(path)
print(frames)