首页 > 解决方案 > 如何导入具有我在函数中作为字符串生成的名称的特定文件,并将其内容用作脚本的全局变量

问题描述

我想知道如何根据生成的变量名来确定某些文件。一个重要的注意事项是,这些文件中定义的所有变量也应该可以在我当前脚本的环境中访问。

我创建了一个函数,它应该生成在特定情况下需要导入的文件的名称。这是该函数的简化版本:

# 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语句,因为它允许我直接在当前脚本中使用这些文件中的所有内容(例如变量),而不是我必须在这些文件中创建 100 个不同的类。

所以我的问题又是:如何确保根据这些生成的变量名导入正确的文件?

标签: python-3.xpython-importdynamic-variables

解决方案


推荐阅读