如何检查命令是否已完成?

时间:2016-10-12 19:16:15

标签: python linux python-3.x

我正试图用git做一些事情。我想知道如何使用 if语句参数来检查该命令是否正确完成:

git checkout master && git reset --hard && git fetch && git pull

我正在尝试检查输出是否等于if语句,但我想这是一个坏主意。这是一个代码:

#!/usr/bin/python3
import os
import subprocess
import time

while True:

x = subprocess.getoutput("git checkout master && git reset --hard && git fetch && git pull")

   if x is "Some text":
    print('Some actions there')

time.sleep(3600)

所以我想知道有没有办法检查命令是否完成。

1 个答案:

答案 0 :(得分:0)

使用subprocess模块,但使用Popenrun执行每项命令。我建议使用后者,因为它的返回类型具有有用的check_returncode()方法。使用shlex.split()将命令转换为其部分列表。

基本上你想要做的是:

import subprocess, shlex
for (cmd in ("git checkout master", "git reset --hard", "git fetch", "git pull")):
    subprocess.run(shlex.split(cmd)).check_returncode()

免责声明:这是临时编写的,未经过测试。它只是向你展示如何到达那里,而不是一直为你做到这一点。