溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

使用python怎么獲取程序執(zhí)行文件的路徑

發(fā)布時(shí)間:2021-02-05 17:28:49 來(lái)源:億速云 閱讀:150 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)使用python怎么獲取程序執(zhí)行文件的路徑,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

1.獲取當(dāng)前執(zhí)行主腳本方法:sys.argv[0]和_ file _

(1)sys.argv

一個(gè)傳給Python腳本的指令參數(shù)列表。sys.argv[0]是腳本的名字。一般得到的是相對(duì)路徑,用os.path.abspath(sys.argv[0])得到執(zhí)行文件的絕對(duì)路徑:

dirname, filename = os.path.split(os.path.abspath(sys.argv[0])) 
os.path.realpath(sys.argv[0])

如果在命令行執(zhí)行sys.argv返回解釋器路徑:[‘/Library/Frameworks/Python.framework/Versions/3.6/bin/ipython3']

(2)_ _ file_ _

獲得當(dāng)前執(zhí)行模塊所在的路徑,一般為相對(duì)路徑,用os.path.abspath(_ _ file_ _)得到執(zhí)行文件的絕對(duì)路徑:

dirname, filename = os.path.split(os.path.abspath( _ _ file_ _)) 
os.path.realpath(_ _ file_ _)

注意:Python控制臺(tái)下,直接使用print _ _ file _ 是會(huì)導(dǎo)致 name ‘ _ file _ ' is not defined錯(cuò)誤的,因?yàn)檫@時(shí)沒(méi)有在任何一個(gè)腳本下執(zhí)行,自然沒(méi)有 _ file _ _的定義了。

(3)sys.argv[0]和_ _ file _ _的差異:在主執(zhí)行文件中時(shí),兩者沒(méi)什么差異,不過(guò)要是在不同的文件下,就不同了,如a.py,b.py這兩個(gè)文件

使用python怎么獲取程序執(zhí)行文件的路徑

使用python怎么獲取程序執(zhí)行文件的路徑

執(zhí)行a.py結(jié)果如下:

使用python怎么獲取程序執(zhí)行文件的路徑

如上圖結(jié)果可以看出:如果都是a.py兩者結(jié)果無(wú)異,但是從在a中導(dǎo)入b時(shí)執(zhí)行的sys.argv[0]還是指的是運(yùn)行的主文件:a.py而_ _ file_ _卻輸出的是b.py

2.sys.path

模塊搜索路徑的字符串列表。由環(huán)境變量PYTHONPATH初始化得到。是一個(gè)目錄的列表,sys.path[0]是調(diào)用Python解釋器的當(dāng)前腳本所在的目錄,即主執(zhí)行文件的父級(jí)目錄。

例子:如在/user/ybp/a.py的文件a.py中執(zhí)行:print(sys.path[0])==>/user/ybp,

在命令行執(zhí)行返回空字符串;

3.注意os.path是系統(tǒng)環(huán)境變量,要與上面區(qū)分開(kāi)來(lái),沒(méi)有os.path[0],os.path中的一些方法:

(1)os.path.split(path)

將路徑名稱(chēng)分成頭和尾一對(duì)。尾部永遠(yuǎn)不會(huì)帶有斜杠。如果輸入的路徑以斜杠結(jié)尾,那么得到的空的尾部。

如果輸入路徑?jīng)]有斜杠,那么頭部位為空。如果輸入路徑為空,那么得到的頭和尾都是空。

https://docs.python.org/2/library/os.path.html#os.path.split

(2)os.path.realpath(path)

返回特定文件名的絕對(duì)路徑,可以在命令行中執(zhí)行。

https://docs.python.org/2/library/os.path.html#os.path.realpath

4.os.getcwd()返回的是當(dāng)前工作路徑,而不一定需要是在腳本里面執(zhí)行,這個(gè)命令相當(dāng)于pwd,可以在命令行中執(zhí)行,返回的是絕對(duì)路徑;

關(guān)于使用python怎么獲取程序執(zhí)行文件的路徑就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI