Python subprocess.Popen以使用git pager

问题描述 投票:1回答:1

我被困在无法通过core.pager运行“ git show”的python子进程调用的位置。

在我的〜/ .gitconfig中,我指定了一个核心寻呼机;

[core]
    pager = cat -vet

并且当我通过子流程(Popen或check_output)运行它时>]

cmd = ['git', '-C', repo, 'show', r'{0}:{1}'.format(commit, filename)]
stdout = subprocess.check_output(cmd)

我得到的输出还没有通过cat分页器运行(行将以'$'结尾)

当我自己从cli运行它时,输出确实通过寻呼机。我应该如何调用子流程以使“ git show”命令通过core.pager运行?

我被困在无法通过core.pager运行“ git show”的python子进程调用的位置。在我的〜/ .gitconfig中,我指定了一个核心寻呼机。 [核心]传呼器= cat -vet并且...

python git subprocess pager
1个回答
2
投票

AFAIK,git仅在将输出定向到终端时才通过配置的寻呼机对输出进行后处理。由于您正在使用subprocess.check_output,因此git命令的输出将重定向到管道(以允许将其提供给Python调用程序)。因此,不会调用core.pager

© www.soinside.com 2019 - 2024. All rights reserved.