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

如何从含未知文件名的Python文件夹中导入所有文件内容?

实现批量导入文件夹内所有Python文件内容的方法

第一步:把文件夹变成Python包

首先,你需要在目标文件夹(比如你说的folder)里新建一个__init__.py文件——这是Python识别“包”的必备标志,没有它就没法按包的规则导入内容。

第二步:在__init__.py里写自动导入代码

把下面的代码复制到__init__.py中,它会自动遍历文件夹里所有.py文件,排除自身后导入每个文件的所有非私有内容:

import os
import sys

# 获取当前文件夹的路径
current_dir = os.path.dirname(__file__)
# 把当前文件夹加入Python的模块搜索路径
sys.path.append(current_dir)

# 遍历文件夹内所有文件
for filename in os.listdir(current_dir):
    # 只处理.py文件,跳过__init__.py本身
    if filename.endswith('.py') and filename != '__init__.py':
        # 去掉文件名的.py后缀,得到模块名
        module_name = filename[:-3]
        # 动态导入该模块
        module = __import__(module_name)
        # 将模块里的非私有内容导入到当前包的命名空间
        for attr in dir(module):
            if not attr.startswith('_'):
                globals()[attr] = getattr(module, attr)

第三步:直接使用导入

现在你在项目的其他Python文件里,只需要一行代码就能实现你想要的效果:

from folder import *

这就等价于先导入folder里的所有文件,再从每个文件导入所有非私有内容。

注意事项

  • 如果不同文件里有同名的变量、函数或类,后导入的会覆盖先导入的,开发时要留意命名冲突问题
  • 这种方式适合小型项目或快速原型开发,大型项目不建议这么用,会降低代码的可读性和维护性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:57:04