python从子目录导入*不工作

2024-10-01 19:28:55 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个这样的结构:

main_folder
├── main.py
├── folder1
    ├── function1.py
    └── function2.py
    └── ...
    └── function20.py

我想将folder1中的所有文件导入main.py

当我写from folder1 import *时它不起作用,但当我专门写from folder1 import function1时它起作用。考虑到我在folder1下有许多脚本,我更愿意在不键入每个名称的情况下将它们全部导入。有没有办法做到这一点(比如import *


Tags: 文件frompyimport脚本名称键入main
1条回答
网友
1楼 · 发布于 2024-10-01 19:28:55

列出当前文件夹中的所有python(.py)文件,并将它们作为__all__变量放入__init__.py

from os.path import dirname, basename, isfile, join
import glob
modules = glob.glob(join(dirname(__file__), "*.py"))
__all__ = [ basename(f)[:-3] for f in modules if isfile(f) and not f.endswith('__init__.py')]

导入*不是一个好主意,有几个原因,包括名称冲突和使代码难以分析

相关问题 更多 >

    热门问题