最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python執(zhí)行程序獲取所在目錄的解決方案

 更新時(shí)間:2024年05月09日 11:39:06   作者:adyyyyyy  
工作需要,寫一個(gè)小腳本,其中有個(gè)需求是獲取實(shí)際的執(zhí)行程序所在路徑(python代碼由pyinstaller打包成執(zhí)行程序),這篇文章主要介紹了Python執(zhí)行程序獲取所在目錄的解決方案,需要的朋友可以參考下

Python執(zhí)行程序獲取所在目錄

工作需要,寫一個(gè)小腳本,其中有個(gè)需求是獲取實(shí)際的執(zhí)行程序所在路徑(python代碼由pyinstaller打包成執(zhí)行程序)。沒想到這么一個(gè)小要求,淺藏小坑。

方案一

os.path.realpath(os.curdir)
os.path.realpath(os.getcwd())

這兩個(gè)命令都可以獲取當(dāng)前命令行的路徑,可是,如果在其它目錄下執(zhí)行程序:

(base) (venv) PS D:\project\pythonProject> .\dist\python.exe

輸出的路徑是命令行當(dāng)前路徑D:\project\pythonProject而不是執(zhí)行程序所在路徑D:\project\pythonProject\dist

方案二

os.path.realpath(os.path.dirname(__file__))

這個(gè)命令獲取有此行代碼的.py文件位置。直接在pycharm運(yùn)行調(diào)試一切正常。然而,當(dāng)使用pyinstaller打包程序執(zhí)行后,路徑變成了如下路徑。

C:\Users\Administartor\AppData\Local\Temp\_MEI313522\

一開始還沒找到文件輸出在哪,一番調(diào)查后,可能原因如下:

使用 PyInstaller 打包的可執(zhí)行文件在運(yùn)行時(shí)會(huì)解壓出臨時(shí)文件。這些臨時(shí)文件包含了 Python 腳本、依賴庫(kù)和資源文件等。當(dāng)運(yùn)行打包后的可執(zhí)行文件時(shí),PyInstaller 會(huì)將這些文件解壓到一個(gè)臨時(shí)目錄中,然后從臨時(shí)目錄中執(zhí)行程序。

一般情況下,當(dāng)程序運(yùn)行結(jié)束后,臨時(shí)文件會(huì)被自動(dòng)刪除。這是因?yàn)椴僮飨到y(tǒng)會(huì)在程序退出時(shí)清理臨時(shí)文件。如果程序異常退出,可能會(huì)導(dǎo)致臨時(shí)文件沒有被刪除。然而,PyInstaller 在打包時(shí)會(huì)盡量保證生成的可執(zhí)行文件能夠自動(dòng)清理臨時(shí)文件,以避免產(chǎn)生垃圾文件。

在 Windows 系統(tǒng)中,臨時(shí)文件通常存儲(chǔ)在用戶的臨時(shí)目錄(例如 C:\Users\<username>\AppData\Local\Temp)中。在 Linux 和 macOS 等系統(tǒng)中,通常是在 /tmp 目錄中。

OK,破案,一刻也沒有為__file__的失敗而哀悼,立刻趕來戰(zhàn)場(chǎng)的是sys.argv[0]

方案三

os.path.realpath(os.path.dirname(sys.argv[0]))

完美解決問題。相關(guān)資料如下:

sys.argv[0] 表示 Python 腳本或者可執(zhí)行文件的路徑。在運(yùn)行 Python 腳本時(shí),sys.argv 是一個(gè)包含命令行參數(shù)的列表,其中 sys.argv[0] 是腳本本身的路徑。

具體來說,sys.argv[0] 是一個(gè)字符串,包含了啟動(dòng) Python 解釋器時(shí)用于執(zhí)行腳本的可執(zhí)行文件的路徑。它可以用于獲取腳本所在的目錄或用于構(gòu)建其他路徑。通常情況下,sys.argv[0] 是一個(gè)絕對(duì)路徑,但在某些情況下也可能是相對(duì)路徑。

在使用 pyInstaller 或類似工具將 Python 腳本打包成可執(zhí)行文件時(shí),sys.argv[0] 仍然表示可執(zhí)行文件的路徑,而不是原始 Python 腳本的路徑。

到此這篇關(guān)于Python執(zhí)行程序獲取所在目錄的解決方案的文章就介紹到這了,更多相關(guān)Python獲取所在目錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中numpy 數(shù)組過濾詳解

    python中numpy 數(shù)組過濾詳解

    這篇文章主要介紹了python中numpy 數(shù)組過濾詳解的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • Jupyter、PyCharm配置Anaconda虛擬環(huán)境全過程

    Jupyter、PyCharm配置Anaconda虛擬環(huán)境全過程

    本文介紹了如何在Anaconda中創(chuàng)建、激活、安裝包、刪除包和刪除虛擬環(huán)境,以及如何將虛擬環(huán)境添加到Jupyter Notebook中,同時(shí),還提到了解決在安裝包時(shí)遇到的常見問題
    2026-02-02
  • python文件處理詳解

    python文件處理詳解

    這篇文章主要介紹了Python 處理文件的幾種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • Python自動(dòng)化中三種等待時(shí)間方式

    Python自動(dòng)化中三種等待時(shí)間方式

    這篇文章主要介紹了Python自動(dòng)化中三種等待時(shí)間方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python中使用HTMLParser解析html實(shí)例

    Python中使用HTMLParser解析html實(shí)例

    這篇文章主要介紹了Python中使用HTMLParser解析html實(shí)例,本文直接給出使用示例,并總結(jié)出HTMLParser含有的方法分為兩類,一類是需要顯式調(diào)用的,而另一類不需顯示調(diào)用,需要的朋友可以參考下
    2015-02-02
  • python刪除文件、清空目錄的實(shí)現(xiàn)方法

    python刪除文件、清空目錄的實(shí)現(xiàn)方法

    這篇文章主要介紹了python刪除文件、清空目錄的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 修復(fù) Django migration 時(shí)遇到的問題解決

    修復(fù) Django migration 時(shí)遇到的問題解決

    本篇文章主要介紹了修復(fù) Django migration 時(shí)遇到的問題解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • Python機(jī)器學(xué)習(xí)NLP自然語言處理基本操作詞袋模型

    Python機(jī)器學(xué)習(xí)NLP自然語言處理基本操作詞袋模型

    本文是Python機(jī)器學(xué)習(xí)NLP自然語言處理系列文章,帶大家開啟一段學(xué)習(xí)自然語言處理 (NLP) 的旅程。本篇文章主要學(xué)習(xí)NLP自然語言處理基本操作之詞袋模型
    2021-09-09
  • Python 語句的表達(dá)式和縮進(jìn)

    Python 語句的表達(dá)式和縮進(jìn)

    本篇文章將會(huì)使大家了解Python 語句、表達(dá)式以及它們之間的區(qū)別。還包含幾個(gè)示例來更清楚地解釋這個(gè)概念。接下來,我們將解釋如何在 Python 編程中使用多行語句和縮進(jìn),需要的朋友可以參考一下
    2021-09-09
  • Python的type()函數(shù)用法小結(jié)(最新推薦)

    Python的type()函數(shù)用法小結(jié)(最新推薦)

    在本文中,深入探討了type()函數(shù)的用法,提供了詳細(xì)的示例代碼,并討論了其在Python編程中的實(shí)際應(yīng)用,通過學(xué)習(xí)如何正確使用type()函數(shù),可以更好地掌握Python編程,并寫出更可靠的代碼,需要的朋友可以參考下
    2024-07-07

最新評(píng)論

胶南市| 郎溪县| 延吉市| 调兵山市| 沧州市| 贵定县| 嘉定区| 筠连县| 左贡县| 安平县| 南京市| 延吉市| 延寿县| 望都县| 南投县| 裕民县| 博野县| 中西区| 闵行区| 鄂托克前旗| 千阳县| 库车县| 鹤庆县| 达州市| 青阳县| 邻水| 那坡县| 荥阳市| 嘉鱼县| 卫辉市| 即墨市| 遵义县| 铁岭市| 宜阳县| 准格尔旗| 民丰县| 满城县| 周宁县| 南木林县| 兰州市| 东兰县|