【问题标题】:Shell scripting in Python: calling programs that use curses, etcPython中的Shell脚本:调用使用curses等的程序
【发布时间】: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


    【解决方案1】:

    试试:

    import os
    os.system(mycommand)
    

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

    【讨论】:

      猜你喜欢
      • 2015-11-18
      • 2022-09-25
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      相关资源
      最近更新 更多