import上一級目錄的模塊(Python)

import上一級目錄的模塊(Python)

python中,import module會去sys.path搜索,sys.path是個列表,並且我們可以動態修改。
import某個目錄的module,我們sys.path.insert(0,somedir)來加入搜索路徑,就可以import了。
既然這樣,要import上一級目錄的module,可以sys.path.insert(0,parentdir)
不過這種寫絕對路徑的方式,如果文件放到其它地方,就不行了。
所以用動態方法來獲取上一級目錄。

import os,sys 
parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
sys.path.insert(0,parentdir)  

爲什麼用sys.path.insert(0,parentdir) 而不是用sys.path.append(parentdir)
因爲是遍歷搜索路徑的,所以如果在其它路徑裏也有個同名的module,會import錯。用sys.path.insert(0,parentdir)可以確保先搜索這個路徑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章