Python中的Shell脚本:调用使用curses等的程序

这是一个非常具体的问题,但我正在寻找一个更通用的解决方案:

我正在用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” – 相反,我正在寻找一种更通用的技术,我可以应用于这个和其他配置任务.

谢谢!

最佳答案 尝试:

import os
os.system(mycommand)

这适用于wget,在屏幕上的一行重写自身的进度条以这种方式正常工作.我想它也适用于git和其他人.

点赞