如何导入a.py而不是文件夹

时间:2010-05-14 08:49:54

标签: python import

zjm_code
    |-----a.py
    |-----a
          |----- __init__.py
    |-----b.py
a.py中的

是:

c='ccc'
b.py中的

是:

import a

print dir(a)

当我执行b.py时,它显示(它导入'a'文件夹):

['__builtins__', '__doc__', '__file__', '__name__', '__path__']

当我删除文件夹时,它显示,(它导入a.py):

['__builtins__', '__doc__', '__file__', '__name__', 'c']

所以我的问题是:

如何通过不删除文件夹来导入a.py

感谢

更新

我使用imp.load_source,因此在b.py中是:

import imp,os
path = os.path.join(os.path.dirname(__file__), os.path.join('aaa.py'))
ok=imp.load_source('*',path)
print ok.c

现在好了,打印'ccc'

如何通过“print ok”显示“ccc”而不是通过“print ok.c”???

感谢

updated2

现在好了:

imp.load_source('anyname',path)

from anyname import *
print c

显示'ccc'

updated3

也没关系:

import imp,os
imp.load_source('anyname','aaa.py')
from anyname import *
print c

2 个答案:

答案 0 :(得分:2)

使用imp.load_module - 您可以在那里指定文件目录,覆盖导入行为。

答案 1 :(得分:1)

将文件夹重命名为其他名称。具有相同名称的文件夹优先。