2013-02-25 47 views
2

我已通過py2exe創建了可執行的Python文件。通過快捷方式運行Python可執行文件會更改程序運行的位置

如果我在dist文件夾中運行這個可執行文件,它運行得很好。

該程序需要訪問dist文件夾中的文件(包含參考數據的txt文件)。

如果我在桌面上爲該可執行文件創建一個快捷方式,該程序將運行但無法正常工作。看起來程序運行時,其文件夾是快捷方式所在的文件夾,而不是exe的位置。所以,它無法找到帶有參考數據的這些txt文件。

在我的代碼,我呼籲那些txt文件是這樣的:

ref_correction = np.matrix(np.genfromtxt('Reference_Data.txt'))

我該如何解決這個問題?

回答

1

通過使用__file__變量(其中包含您正在編寫代碼的Python文件的路徑),可以構建數據文件的路徑。您可以將其擴展爲絕對路徑(使用os.path.abspath()),然後僅取該路徑的目錄部分,並將其與數據文件的名稱結合使用。

+0

謝謝!對不起,新手問題:) – cinico 2013-02-25 11:01:27

+0

其實,現在我運行可執行文件時出現了不同的錯誤 (NameError:全局名稱'__file__'未定義) 在將它變成一個帶有py2exe的exe文件之前,沒有這個問題。 – cinico 2013-02-25 14:48:43

+0

我想我不能使用__file__作爲exe文件。 我沒有很好理解,但這就是我認爲從這個線程: http://stackoverflow.com/questions/2632199/how-do-i-get-the-path-of-the-current-執行文件功能於蟒蛇 – cinico 2013-02-25 14:55:52

0

使用這個代替:

path = os.getcwd() #Where the 'exe' file is stored 

otherpath = os.path.join(path, '../Folder/SubFolder/') #Creates a new path 

在創建「.EXE」文件中使用‘__ __文件’不再適用於道路,所以你需要得到與上面的線的當前工作目錄。這將更新您的路徑到'.exe'和所有需要的文件當前所在的目錄。

相關問題