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