python:列出子目录中的导入选项,然后导入其中一个

Python: list import options in subdirectory, then import one of them

本问题已经有最佳答案,请猛点这里访问。

我正在制作一个可用于多故事模块的游戏引擎。我想将这些故事保存在一个子目录中,并使用单个PLAY.py文件允许用户选择其中一个。

到目前为止,我已经能够使用这个简单的代码获得所有故事模块的列表:

1
2
import glob
stories = glob.glob( ./stories/ds_*.py )

然后,我使用for循环和format语句列出用户的选项。问题是我不知道如何使用结果字符串来实际导入任何内容。也许环球不是最好的解决方案?


只需列出故事目录中的文件,然后打开用户选择的文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from os import listdir
from os.path import isfile, join
import imp

stories_path = 'path/to/modules'

# Put in stories all the modules found:
stories = [f for f in listdir(stories_path ) if isfile(join(stories_path,f))]

# Let the user select one...
selected = stories[xx]

# Import it:
story = imp.load_source('module.name', selected)