You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从独立文件夹批量导入多个Python文件到单个Python文件中

存放关卡的文件目录

目录结构截图

导入语句代码

导入语句截图
如第二张截图所示,当前要导入level_one需要单独编写对应的导入语句。我尝试使用*符号一次性导入level_one、level_two两个关卡文件,就像导入库中所有方法的用法一样,但该方式没有生效。下方截图是我尝试调用写在level_two.py文件中的字典的场景,目前必须额外添加对应导入语句才能正常调用,请问如何实现批量导入?

文件调用位置代码

调用代码截图

解决方案

方案1:配置包的__init__.py实现批量导入(适合关卡数量固定的场景)

你需要先在存放所有level_*.py的文件夹下新建一个名为__init__.py的文件,写入以下内容:

# 声明用import *时需要导出的模块
__all__ = ["level_one", "level_two"]
# 预先导入所有关卡模块
from . import level_one
from . import level_two

配置完成后,你在外部代码里就可以直接用一行语句批量导入所有关卡模块:

from 你的关卡文件夹名 import *

之后直接通过level_one.xxx、level_two.xxx就能调用对应文件里的字典、函数等内容。

方案2:动态批量导入(适合后续会新增大量关卡的场景)

如果后续你会不断新增level_three.py、level_four.py等文件,不想每次新增都手动修改__init__.py,可以用动态导入逻辑自动加载所有符合命名规则的关卡文件:

import os
import importlib

# 替换为你存放关卡文件的包名,比如你的关卡都放在levels文件夹下就填levels
package_name = "levels"
# 自动扫描所有符合level_xxx.py命名规则的文件
level_module_names = [
    f[:-3] for f in os.listdir(package_name)
    if f.startswith("level_") and f.endswith(".py") and f != "__init__.py"
]

# 动态导入所有关卡模块,存入字典统一管理
levels = {}
for module_name in level_module_names:
    levels[module_name] = importlib.import_module(f"{package_name}.{module_name}")

# 调用示例:获取level_two里的字典
target_dict = levels["level_two"].你的字典名

这种方案不需要手动维护导入列表,新增关卡只要文件名符合level_xxx.py的规则,就会被自动导入,扩展性更强。


内容的提问来源于stack exchange,提问作者Xephiss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:27:04