我正在尝试从命令提示符下载并安装python。我有下载和安装命令。问题是我想让cmd等到下载结束,然后执行install命令。
我使用一个python脚本和它的子进程模块来做上面的事情,因此我的代码看起来像这样(这些不是确切的命令):
subprocess.call('start /max http://profile.org/choice/fileW.msi' , shell = True)
subprocess.call('msiexec.exe fileW.msi' , shell = True)第一行下载python.msi文件。第二行安装python.msi。当我单独运行它们时,它们可以工作,但当我一起运行它们时,我得到"fileW.msi not found“。原因是在下载.msi之前,cmd会运行第二个命令,因此,它无法找到该文件,因为它尚未下载该文件。
发布于 2018-01-11 01:09:05
一般答案:因为您需要/max,所以您需要start,但是start在后台启动,除非您使用/wait开关
但在你的例子中,这是行不通的,因为字符串是一个URL,windows会选择你的默认浏览器来打开/下载它,所以在下载结束之前你不能阻止调用。
另一种解决方案是使用wget包:
import wget
downloaded_file = wget.download("http://profile.org/choice/fileW.msi")
subprocess.call(['msiexec.exe',downloaded_file])https://stackoverflow.com/questions/48192517
复制相似问题