python擷取程式執行檔案路徑的方法

來源:互聯網
上載者:User
下面為大家分享一篇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,

在命令列執行返回Null 字元串;

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,可以在命令列中執行,返回的是絕對路徑;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.