【发布时间】:2011-12-09 16:40:14
【问题描述】:
这是一个非常具体的问题,但我正在寻找一个更通用的解决方案:
我正在用 Python 编写一个 shell 脚本来协助各种配置任务,包括执行各种存储库的git clone。当我调用git clone 时,有没有一种好方法可以直接向终端提供 git 显示输出(进度条等)?
仅将子进程的标准输出通过管道传输到 sys.stdout 并不能解决问题,因为git 的行为涉及重写终端的同一部分以指示进度。所以这还不够好:
import sys, subprocess
process = subprocess.Popen("git clone --recursive https://github.com/my/repo.git",
shell=True,
stdout=sys.stdout,
stderr=subprocess.PIPE)
我不是在寻找“使用 git-python”的答案——相反,我在寻找一种更通用的技术,可以应用于这个和其他配置任务。
谢谢!
【问题讨论】:
标签: python shell scripting subprocess stdout