在爲我的程序創建自動更新程序的過程中,我無法成功下載.exe文件。Python - 從互聯網下載.exe文件
我所做的一切是這樣的:
import urllib
url = '--insert-url--'
f = urllib.urlopen(url)
file = f.read()
f.close
f2 = open('download.exe', 'w')
f2.write(file)
f2.close
我沒有遇到錯誤,同時下載,但是當我嘗試運行的執行,我收到以下錯誤:
The version of this file is not compatable with the version of Windows you're running. Check your computer's system information to see whether you need an x86(32-bit) or an x64 (64-bit) version of the program, and then contact the software publisher.
我自己上傳執行,並且之前工作正常。
我也嘗試了一些其他的下載方法,我發現,這導致了相同的錯誤,並且我也嘗試上傳到不同的網站以確保它不是這樣。
有沒有特殊的方法,我需要做到這一點?
編輯:
我做了一些進一步的測試與下載。我在另一臺計算機上運行了該程序(我正在使用Spencer發佈的內容) - 一個32位系統。 (Mine是一個64位)。我沒有在那臺計算機上看到錯誤,但是當我運行該程序時,命令行出現了,因爲它是一個命令行樣式.exe,我用它作爲我的測試下載,但閃爍的白色入口欄的東西只是在我必須結束程序之前反彈到所有地方,所以顯然有一些東西被損壞。
此外,下載過程可能與批處理文件?這將會更容易,因爲程序將不得不重新開始使用新的更新,因爲它使用的是全新的.exe。 (我要使用py2exe爲使該計劃的.exe)。
由於文件擴展名是'.exe',我假設你在Windows上這樣做。嘗試將'f2'文件的模式更改爲''wb''以二進制模式寫入。默認是文本模式,同時會將遇到的所有換行符(字節)更改爲回車+換行符。 – martineau 2011-04-26 22:51:37
如果您手動下載(通過網頁瀏覽器訪問它)並執行它,您是否面臨同樣的問題? – 2011-04-26 22:58:54
@Senthil它工作正常,如果我手動下載它。 – 2011-04-27 01:14:32