gpt4 book ai didi

Python - 从 Internet 下载 .exe 文件

转载 作者:行者123 更新时间:2023-11-28 22:05:03 25 4
gpt4 key购买 nike

在为我的程序创建自动更新程序的过程中,我无法成功下载 .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 位系统。 (我的是 64 位的。)我在那台计算机上没有收到错误,但是当我运行程序时,命令行出现了,因为它是我用作我的命令行样式的 .exe测试下载,但在我必须结束程序之前,闪烁的白色输入栏会到处弹跳,所以显然有些东西被破坏了。

此外,是否可以使用批处理文件进行下载?这几乎会更容易,因为程序无论如何都必须重新启动才能开始使用新更新,因为它使用的是全新的 .exe。 (我将使用 py2exe 使程序成为 .exe。)

最佳答案

根据 urllib 的官方 python 文档:

One caveat: the read() method, if the size argument is omitted or negative, may not read until the end of the data stream; there is no good way to determine that the entire stream from a socket has been read in the general case.

来自同一个库的替代方案是

import urllib

url = '--insert-url--'

filename = 'download.exe'
urllib.urlretrieve(url, filename)

关于Python - 从 Internet 下载 .exe 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5797344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com