在Python中进行Shell脚本编程: 调用使用curses等程序

4
这里有一个非常具体的问题,但我正在寻找一个稍微更一般化的解决方案:
我正在用Python编写一个Shell脚本来协助进行各种配置任务,包括对各种仓库执行git clone。当我调用git clone时,有没有好方法可以直接向终端提供git显示输出(进度条等)?
只将子进程的stdout导出到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",相反,我正在寻找一种更一般的技术,可以应用于这个和其他配置任务。

谢谢!

1个回答

2

尝试:

import os
os.system(mycommand)

这对于wget来说是有效的,屏幕上一行重写自己的进度条以这种方式正确地工作。我想这对于git和其他工具也是有效的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接