2010-05-14 17 views
4
zjm_code 
    |-----a.py 
    |-----a 
      |----- __init__.py 
    |-----b.py 

在a.py是:如何導入a.py不是一個文件夾

c='ccc' 

在b.py是:

import a 

print dir(a) 

當我執行b.py,它展示(其導入 '一個' 文件夾):

['__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'

如何顯示通過 'CCC' 「打印C」 不通過 「打印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

使用imp.load_module - 您可以指定文件目錄,覆蓋導入的行爲。

+0

你好JoãoMiguel Neves,看看更新 – zjm1126 2010-05-14 09:22:22

1

將文件夾重命名爲不同的名稱。具有相同名稱的文件夾優先。

+2

具有相同名稱的*包*優先。 – u0b34a0f6ae 2010-05-14 09:28:41

相關問題