Использование глобального словаря для создания переменных - PullRequest
1 голос
/ 24 февраля 2012

Мне нужно создать неизвестное количество переменных 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 (когда мы не знаем заранее количество и имя переменных) или если есть альтернативный метод предпочтительнее.

Ответы [ 2 ]

4 голосов
/ 24 февраля 2012

Для этого следует использовать специальный словарь:

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

Как правило, не следует смешивать данные и имена переменных или атрибутов.Ваш код может скрывать только любой встроенный Python, если существует файл с таким же именем.

2 голосов
/ 24 февраля 2012

Нет, вам, вероятно, не следует использовать глобалы для этого. Вместо этого создайте словарь или класс и сохраните в нем значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...