2011-11-15 2 views
3

git 명령과 함께 출력을 호출기로 보내도록 git과 함께 사용해야하는 스크립트를 작성합니다. 파이썬을 사용하여 이것을하고 싶습니다.git 명령 후에 호출기에 출력을 표시하려면 어떻게해야합니까?

나는 stdout에 쓰는 python 스크립트가 있습니다. 이제 사용자가 git에서 설정 한 호출기에 출력 결과를 표시하고 싶습니다.

git-whatever | less 

파이썬 내에서이 작업을 수행 할 수있는 방법이 있나요 :

나는 항상이 작업을 수행 래퍼 스크립트를 제공 할 수 알아?

답변

2

: 그래서 패턴에 따라, 당신은 단지 임시 파일로 출력을 쓸 수 있고, lesssubprocess.Popen와 전화

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() 
+0

이것은 더 나아졌습니다! 감사! –

2

git은 임시 파일에 내용을 쓰고 파일 이름을 git hook에 전달하는 것을 좋아합니다. (대신 파이프를 사용하여) 당신은 심지어 임시 파일을 생성 할 필요가 없습니다

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 
+0

꽤 깨끗한 것 같습니다. 나는 그것을 밖으로 시도 할 것이다. –

관련 문제