我构建了一个应该和git一起使用的脚本,以便在git命令之后将输出发送到寻呼机。我想用Python来做到这一点。如何在git命令后在传呼机中显示输出?
我有一个写入标准输出的python脚本。现在我想在用户在git中设置的寻呼机中显示它的输出。
我知道我可以始终提供一个包装脚本,这是否:
git-whatever | less
有没有办法从蟒蛇内做到这一点?
我构建了一个应该和git一起使用的脚本,以便在git命令之后将输出发送到寻呼机。我想用Python来做到这一点。如何在git命令后在传呼机中显示输出?
我有一个写入标准输出的python脚本。现在我想在用户在git中设置的寻呼机中显示它的输出。
我知道我可以始终提供一个包装脚本,这是否:
git-whatever | less
有没有办法从蟒蛇内做到这一点?
你甚至不必创建临时文件(使用管道代替):
import subprocess
proc=subprocess.Popen('less', stdin=subprocess.PIPE)
lines=(str(i) for i in range(1000))
proc.stdin.write('\n'.join(lines))
proc.stdin.close()
proc.communicate()
git喜欢将东西写入临时文件,然后将文件的名称传递给git钩子。所以,下面这个模式,你可以只写你的输出到一个临时文件,并调用less
与subprocess.Popen
:
import subprocess
import tempfile
lines=(str(i) for i in range(1000))
f=tempfile.NamedTemporaryFile(mode='w')
f.write('\n'.join(lines))
f.flush()
proc=subprocess.Popen(['less',f.name])
proc.communicate()
f.close() # deletes the temporary file
这似乎很干净。我会尝试一下。 –
这更好!谢谢! –