2012-08-22 5 views
2

가능한 중복 : 쉘 실행 출력을 캡처하는 간단한 파이썬 명령?

내가 쉘 실행 출력을 캡처 할
Running shell command from python and capturing the output

, 나는이 작업을 수행.

declare TAGNAME=`git describe --tags` 

심플. 나는 이것을 파이썬에서 찾았지만 대부분은 매우 복잡해 보인다. 이 작업을 수행하는 가장 간단한 방법은 무엇입니까? 그래, 내가 함수를 만들 수 있다는 것을 알고 있지만, 그것이 존재한다면 미리 정의 된 함수를 알고 싶다.

tagname = theFunc('git describe --tags') 

답변

6

시도 :

>>> import subprocess 
>>> tagname = subprocess.check_output('git describe --tags'.split()) 
+0

반환 된 문자열에'.strip ('\ n')'을 호출해야합니다. – Eonil

+0

@Eonil 왜'.strip ('\ n')'을 호출할까요? '\ n'이 정말로 중요합니까? – quantum

+0

@xiaomao 예. 문자열을 다른 쉘 명령에 전달할 것이기 때문에. 예기치 않은 결과로 당신이 잘될 수 있다는 것이 정말 기쁩니다. – Eonil

1

당신은 subprocess 모듈을 살펴해야한다. 명령 출력도 함께 캡처 할 수 있습니다. 설명서 페이지에는 모듈 사용 방법에 대한 많은 예제가 있습니다.

예 :

output=subprocess.Popen(["ps", "aux"], stdout=subprocess.PIPE, 
    stderr=subprocess.PIPE).communicate() 

결과는 명령에서 캡처 된 표준 출력과 표준 에러로 튜플이다.

관련 문제