如何在python中的subdir下导入所有文件

时间:2017-09-29 02:41:52

标签: python python-3.x

我有这样的dir结构:

Proj/
    run.py
    Util/
        __init__.py
        x.py
        y.py

在x.py中,我定义了一个函数:

def p():
    return 1

在y.py中,我定义:

def q():
    return 2

目前在run.py中,我将使用

from Util import *

但我必须使用

打电话给他们
x.p()
y.q()

但我想用

打电话给他们
p()
q()

我有办法做到这一点吗?就像(我想象的那样)

from Util.* import *

1 个答案:

答案 0 :(得分:0)

使用__init__.py

中的星级导入,将名称添加到包名称空间中
# in util/__init__.py
from util.x import *
from util.y import *

在每个子模块中,使用__all__名称定义要导出的名称:

# in x.py
__all__ = ['p']

# in y.py
__all__ = ['q']

这是包中__init__.py模块的标准用法,记录为here