如何在Python中“实时”显示命令输出到屏幕?

时间:2013-12-16 23:06:59

标签: python

我试图在Python中调用“git clone”命令。我希望Python脚本可以将GIT命令输出显示到屏幕,就像在终端中运行它一样。例如,克隆过程的百分比信息。无论如何都是用Python做的吗?

1 个答案:

答案 0 :(得分:0)

看看Python的子流程模块,您可以将输出捕获到变量然后使用它。有办法拦截转向和粗壮。它可以从2.4开始使用,应该可以解决问题。我已经将它用于运行系统命令的脚本,以捕获工作中的输出。如果你需要一个例子,请回复我明天早上可以从我的工作电脑上挖一个......

http://docs.python.org/2/library/subprocess.html

    try:
        # Needs to all be one argument for acme command...
        cmd = ["acme nw -proj " + self.based_on]
        p = subprocess.Popen(cmd,
                             cwd=place,
                             shell=True,
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE)
        output, error_msgs = p.communicate()
    except (OSError) as err:
        sys.stdout.write("ERROR {0} ({1})\n".format(err.strerror,
                                                    err.errno))
        sys.exit(err.errno)
     if len(error_msgs) > 0 and error_msgs != "Scanning the source base and preparing the workspace, please wait ...\n":
        sys.stdout.write("There were errors, during view create\n")
        sys.stdout.write(error_msgs)
    else:
        sys.stdout.write("SUCCESS\n")