Python:列出子目录中的列表导入选项,然后导入其中之一。

11 浏览
0 Comments

Python:列出子目录中的列表导入选项,然后导入其中之一。

这个问题已经在这里有了答案:

如何根据完整路径动态导入模块?

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

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

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

然后我使用for循环和格式化语句来为用户列出选项。问题是我找不到如何使用结果字符串来实际导入任何东西的方法。也许glob不是最好的解决方案?

admin 更改状态以发布 2023年5月24日
0
0 Comments

只需列出 stories 文件夹中的文件,然后打开用户选择的文件:

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)

0