這篇文章將為大家詳細講解有關使用python怎么獲取程序執行文件的路徑,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
1.獲取當前執行主腳本方法:sys.argv[0]和_ file _
(1)sys.argv
一個傳給Python腳本的指令參數列表。sys.argv[0]是腳本的名字。一般得到的是相對路徑,用os.path.abspath(sys.argv[0])得到執行文件的絕對路徑:
dirname, filename = os.path.split(os.path.abspath(sys.argv[0])) os.path.realpath(sys.argv[0])
如果在命令行執行sys.argv返回解釋器路徑:[‘/Library/Frameworks/Python.framework/Versions/3.6/bin/ipython3']
(2)_ _ file_ _
獲得當前執行模塊所在的路徑,一般為相對路徑,用os.path.abspath(_ _ file_ _)得到執行文件的絕對路徑:
dirname, filename = os.path.split(os.path.abspath( _ _ file_ _)) os.path.realpath(_ _ file_ _)
注意:Python控制臺下,直接使用print _ _ file _ 是會導致 name ‘ _ file _ ' is not defined錯誤的,因為這時沒有在任何一個腳本下執行,自然沒有 _ file _ _的定義了。
(3)sys.argv[0]和_ _ file _ _的差異:在主執行文件中時,兩者沒什么差異,不過要是在不同的文件下,就不同了,如a.py,b.py這兩個文件
執行a.py結果如下:
如上圖結果可以看出:如果都是a.py兩者結果無異,但是從在a中導入b時執行的sys.argv[0]還是指的是運行的主文件:a.py而_ _ file_ _卻輸出的是b.py
2.sys.path
模塊搜索路徑的字符串列表。由環境變量PYTHONPATH初始化得到。是一個目錄的列表,sys.path[0]是調用Python解釋器的當前腳本所在的目錄,即主執行文件的父級目錄。
例子:如在/user/ybp/a.py的文件a.py中執行:print(sys.path[0])==>/user/ybp,
在命令行執行返回空字符串;
3.注意os.path是系統環境變量,要與上面區分開來,沒有os.path[0],os.path中的一些方法:
(1)os.path.split(path)
將路徑名稱分成頭和尾一對。尾部永遠不會帶有斜杠。如果輸入的路徑以斜杠結尾,那么得到的空的尾部。
如果輸入路徑沒有斜杠,那么頭部位為空。如果輸入路徑為空,那么得到的頭和尾都是空。
https://docs.python.org/2/library/os.path.html#os.path.split
(2)os.path.realpath(path)
返回特定文件名的絕對路徑,可以在命令行中執行。
https://docs.python.org/2/library/os.path.html#os.path.realpath
4.os.getcwd()返回的是當前工作路徑,而不一定需要是在腳本里面執行,這個命令相當于pwd,可以在命令行中執行,返回的是絕對路徑;
關于使用python怎么獲取程序執行文件的路徑就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文標題:使用python怎么獲取程序執行文件的路徑-創新互聯
鏈接地址:http://www.yijiale78.com/article46/ddoehg.html
成都網站建設公司_創新互聯,為您提供靜態網站、小程序開發、網站設計、響應式網站、網站內鏈、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯