如何等待,直到一个特定的输出(字符串)发生,而执行subprocess.check_output? &



我正试图编写一个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库执行下载。但是我不知道你的约束条件

相关内容

最新更新