溫馨提示×

溫馨提示×

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

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

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

發(fā)布時間:2021-07-29 14:47:09 來源:億速云 閱讀:139 作者:Leah 欄目:編程語言

python中怎么獲取程序執(zhí)行文件路徑,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

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

  (1)sys.argv

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

  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_ _

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

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

  os.path.realpath(_ _ file_ _)

  注意:Python控制臺下,直接使用print _ _ file _ 是會導(dǎo)致 name ‘ _ file _ ’ is not defined錯誤的,因為這時沒有在任何一個腳本下執(zhí)行,自然沒有 _ file _ _的定義了。

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

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

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

  2.sys.path鄭州做流產(chǎn)多少錢 http://www.kdwtrl.com/

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

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

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

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

  (1)os.path.split(path)

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

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

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

  (2)os.path.realpath(path)

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

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

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

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

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

AI