Как я могу импортировать определенные файлы с именами, которые я сгенерировал как строки в функции, и использовать их содержимое в качестве глобальных переменных для моего скрипта - PullRequest
0 голосов
/ 18 июня 2019

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

Я создал функцию, которая должна генерировать имена файлов, которые необходимо импортировать в этом конкретном случае. Вот упрощенная версия этой функции:

# the user provides these inputs: 
building_name = "cambridge"
room_name = "office1"


def determine_file_names(room=room_name, building=building_name):

    filename_building = "building_{}".format(building)    
    filename_room = "room_{}_{}".format(building, room)

    return(filename_building, filename_room)

building_file, room_file = determine_file_names()

# I'd like to import the files 'building_cambridge.py' and 'room_cambridge_office1.py' by doing the following: 
from Filefolder import building_file
from Filefolder import room_file 

Проблема в том, что необходимые файлы не импортируются. Я получаю сообщение об ошибке, что местоположение файла 'building_file.py' не найдено:

Exception has occurred: ImportError
cannot import name 'building_file' from 'FileFolder' (unknown location)

Имеет смысл, что он не нашел 'building_file.py', потому что я действительно хотел, чтобы python импортировал 'building_cambridge.py'.

У меня есть около 300 файлов, из которых нужно импортировать только 2 конкретных файла, поэтому мне крайне необходимо, чтобы такая функция работала. У меня есть строгие предпочтения для оператора import, так как это позволяет мне использовать весь контент (например, переменные) в этих файлах непосредственно в моем текущем скрипте, а не создавать сотни разных классов в этих файлах. файлы.

Итак, опять мой вопрос: как я могу гарантировать, что я могу импортировать нужные файлы на основе этих сгенерированных имен переменных?

...