停止cmd提示直到下载完成

时间:2018-01-10 17:01:11

标签: python cmd wait

我正在尝试从命令提示符下载并安装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运行第二个命令,因此,它无法找到尚未下载的文件。

1 个答案:

答案 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])