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)
可以確保先搜索這個路徑。