Называть ранее неопределенные имена переменных из значения словаря? - PullRequest
0 голосов
/ 18 января 2019

Я открываю много файлов в начале своей программы, и я бы хотел избежать использования более 50 отдельных строк «с открытым (....) как ....». Я ищу способ сопоставить имена файлов с именами переменных, в которых будут храниться данные, чтобы я мог использовать цикл for для открытия всех файлов и сохранения большого количества строк кода.

Мне показалось интуитивно понятным, что словарь вполне подойдет для этой цели, но если я использую имена переменных в качестве значений, я получаю ошибку «имя» имя переменной не определено. Я также попытался сохранить имена переменных в виде строк, и, хотя это не приводит к появлению сообщения об ошибке, он также, похоже, не хранит данные (то есть, когда я пытаюсь вызвать переменную впоследствии, он говорит, что переменная не определена) .

fileMapDict = {'file1': var1, 'file2': var2, 'file3': var3}

for file in fileMapDict:
    with open(file, 'r') as data:
        fileMapDict[file] = json.load(data)

Как я уже сказал, этот код выдает ошибку переменной не определено, когда я запускаю код, может кто-нибудь предложить способ заставить эту работу?

1 Ответ

0 голосов
/ 18 января 2019

Вам не нужно иметь отдельную переменную, если у вас есть данные в словаре.

files = ['file1', 'file2', 'file3']  # list of file names to open
fileMapDict = {}  # empty dictionary to store the data in

for file in files:  
    with open(file, 'r') as data:
        fileMapDict[file] = json.load(data)  # write data to dictionary with the file name as the key
...