我正在尝试从命令提示符下载并安装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。当我单独运行它们时它们可以正常工作,但是当我一起运行它们时,我得到了#34;找不到fileW.msi"。原因是在下载.msi之前,cmd运行第二个命令,因此,它无法找到尚未下载的文件。
答案 0 :(得分:1)
一般答案:既然您需要/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])