C:test [dir] getpath [file] path.py [dir] sub [file] sub_path.py
例如
C:test目錄下還有一個名為sub的目錄;
C:test目錄下有getpath.py,sub目錄下有sub_path.py,getpath.py調用sub_path.py;
我們在C:test下執行getpath.py。如果我們在
sub_path.py裡面使用sys.path[0],那麼其實得到的就是getpath.py所在的目錄路徑“C:test”,因為Python虛擬
機器是從getpath.py開始執行的。如果想要得到sub_path.py的路徑,那麼得這樣:
os.path.split(os.path.realpath(__file__))[0]
驗證:
然後我們在C:test下面執行python getpath/path. py,此時sub_path.py裡面與各種用法對應的值其實是:
os.getcwd() “C:test”,取的是起始執行目錄
sys.path[0]或sys.argv[0 ] “C:testgetpath”,取的是初始執行的腳本的所在目錄
os.path.split(os.path.realpath(__file__))[0] “C:testgetpathsub”,取的是__file__所在檔案sub_path.py的所在目錄