我正在尝试从命令提示符下载并安装 python。我有下载和安装命令。问题是我希望 cmd 等待下载完成,然后执行安装命令。
我正在使用 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 运行了第二条命令,结果找不到该文件,因为该文件尚未下载。
一般答案:因为您需要 /max
,所以您需要 start
,但是 start
在后台启动,除非您使用 /等待
切换
但在你的情况下,这是行不通的,因为该字符串是一个 URL,Windows 会选择你的默认浏览器来打开/下载它,因此在下载结束之前你无法阻止调用。
另一个解决方案是使用 wget
封装:
import wget
downloaded_file = wget.download("http://profile.org/choice/fileW.msi")
subprocess.call(['msiexec.exe',downloaded_file])
我是一名优秀的程序员,十分优秀!