python打包exe後設置隨系統啓動並讀取配置文件遇到的一點小坑

python打包成一個exe文件,這個技術網上有不一樣的框架技術能夠實現,就略過了,我用的是pyinstaller。python

這裏主要說的是,當這個exe配置成隨系統啓動,則是自動啓後,當你試圖讀取同一目錄下的文件的時候,會發現找不到該文件。windows

其實這是由於,放在run註冊表下的自啓動程序,運行的時候,基於某些緣由,實際上是被強制當作在框架

C:/windows/system32

下運行,因此就會找不到你放在程序目錄裏的配置文件。post


說了那麼多,其實主要是想說,如何能夠得到該exe的真實目錄路徑,請看下面這個截圖
圖片描述spa

聰明的你,請自動略過那些windows/system32,天然就會看到哪一個方法纔是你須要調用的。
而後,只要提取出路徑部分就能夠,這裏由於我是新手,因此又遇到了一個坑,就是關於斜槓和反斜槓的問題。
在代碼調試的時候,sys.argv[0]裏面的是'/',可是到自動運行的時候,倒是'\\'。
好吧,你本身體會過就知道,我直接post上個人代碼。調試

def getExePath():
    sap = '/'
    if sys.argv[0].find(sap) == -1:
        sap = '\\'
    indx = sys.argv[0].rfind(sap)
    path = sys.argv[0][:indx] + sap
    return path
相關文章
相關標籤/搜索