python得到代碼所在文件的絕對路徑


在python中獲取當前路徑使用os.getcwd()並不總是有效的,不是得到的真實絕對路徑。運行的時候有時取得的路徑是當前腳本路徑,有時卻不是,相同的代碼,在win的pycharm下運行得到的路徑,與在linux中執行python test.py后得到的路徑是不同的。

查閱了一些資料才發現,os.getcwd()是用來獲取調用python程序時所在目錄,也就是調用目錄,並非該腳本所在目錄,舉個例子:
有這樣一個腳本,e:\root\subdir\test.py,且test.py文件中有print os.getcwd()語句,
進入cmd窗口,cd e:\root\subdir\,敲擊python test.py 文件,打印結果是e:\root\subdir
如果是這樣 cd e:\root\,敲擊python test.py 文件,打印結果卻是e:\root
簡而言之也就是你在哪個窗口執行的命令,當前窗口就是哪兒。
即使在win的pycharm下,兩個模塊在相同的目錄下也會顯示不同的路徑

 

 

因為連個模塊中的代碼不同,導致輸出的路徑,一個是mainpro , 一個是mypkg.

 

解決辦法:

 

獲取代碼所在文件的絕對路徑:

 

 

current_path = os.path.abspath(__file__)

 

獲取以上文件所在的目錄

current_dir = os.path.dirname(os.path.abspath(__file__))

再次用以上方法可以得到上上級目錄等等

 

參考https://blog.csdn.net/cckavin/article/details/85392392

https://blog.csdn.net/qq_33716688/article/details/89333856

https://blog.csdn.net/lzl001/article/details/8495823


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM