需要向下面的Python3脚本添加什么特定语法,以便脚本过滤每一行结果并评估输出行是否包含特定的子字符串
下面是现在成功运行git clone
命令的代码:
newpath="C:\\path\\to\\destination\\"
cloneCommand='git clone https://github.com/someuser/somerepo.git'
proc = subprocess.check_call(cloneCommand, stdout=subprocess.PIPE, shell=True, cwd=newpath, timeout=None)
上述操作成功克隆了预期回购协议。但问题是没有错误处理
我希望能够让脚本在每一行输出中侦听单词deltas
和done
,以便在输出中打印以下行时指示成功:
Resolving deltas: 100% (164/164), done.
subprocess.Popen(...)
允许我们过滤流输出的每一行。但是,当我们运行像git clone
这样的远程命令时,subprocess.Popen(...)
不起作用,因为subprocess.Popen(...)
不等待从像git clone
这样的远程调用接收返回
What syntax do we need to use to filter the output from calls to
subprocess.check_call(...)
?
我们可以执行一个小脚本来测试
Popen
代码。它在使用我们选择的代码退出之前生成一些STDOUT和STDERR,可以选择延迟:演示如何使用
Popen
的脚本。此脚本的参数将是我们要执行的外部命令如果第一个脚本名为
other_program.py
,而这个脚本名为demo.py
,那么您可以沿着以下几行运行整个过程:注释中与OP讨论的
git clone
用法示例:相关问题 更多 >
编程相关推荐