我正试图编写一个Python脚本,它将下载我的软件构建。因此,脚本将等待,直到出现某些输出,然后继续执行下一个任务:
import os
import subprocess
out = subprocess.check_output(["wget", "--downloadlink--"])
print(out)
if "saved" in out:
print("Download completed!!")
没有打印任何输出。它只是执行命令并退出。
我尝试了上面的程序,但没有得到任何期望的结果。还有别的方法吗?
推荐使用subprocess.run
。但是如果没有的话。关键是告诉方法输出STDERR
以访问消息。
import subprocess
out = subprocess.check_output(
[
"wget",
"--downloadlink--",
],
stderr=subprocess.STDOUT
)
if "saved" in str(out, "utf-8"):
print("saved !!")
# saved !!
注意:我不认为这是检查文件下载是否正常的正确方法。这种方法很弱,因为它依赖于输出中的文本字符串。最好至少使用wget
的返回代码,或者甚至更好地直接通过Python库执行下载。但是我不知道你的约束条件