[PYTHON] 파이썬으로 터미널 출력을 얻으려면 어떻게해야합니까? [복제]
PYTHON파이썬으로 터미널 출력을 얻으려면 어떻게해야합니까? [복제]
os.system ()을 사용하여 터미널 명령을 실행할 수 있지만이 명령의 출력을 캡처하려고합니다. 어떻게해야합니까?
해결법
-
==============================
1.
>>> import subprocess >>> cmd = [ 'echo', 'arg1', 'arg2' ] >>> output = subprocess.Popen( cmd, stdout=subprocess.PIPE ).communicate()[0] >>> print output arg1 arg2 >>>
하위 프로세스 사용 중 버그가 있습니다 .PIPE. 거대한 산출을 위해 이것을 사용하십시오 :
import subprocess import tempfile with tempfile.TemporaryFile() as tempf: proc = subprocess.Popen(['echo', 'a', 'b'], stdout=tempf) proc.wait() tempf.seek(0) print tempf.read()
-
==============================
2.대신 서브 프로세스 모듈을 사용하십시오.
대신 서브 프로세스 모듈을 사용하십시오.
pipe = Popen("pwd", shell=True, stdout=PIPE).stdout output = pipe.read()
Python 2.7에서는 check_output () 함수를 사용할 수도 있습니다.
-
==============================
3.Popen을 하위 프로세스에서 사용할 수 있습니다.
Popen을 하위 프로세스에서 사용할 수 있습니다.
os는 recomment가 아니며 아래와 같습니다.
import os a = os.popen('pwd').readlines()
-
==============================
4.가장 쉬운 방법은 라이브러리 명령을 사용하는 것입니다.
가장 쉬운 방법은 라이브러리 명령을 사용하는 것입니다.
import commands print commands.getstatusoutput('echo "test" | wc')
from https://stackoverflow.com/questions/4408377/how-can-i-get-terminal-output-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] db.Model 객체를 json으로 직렬화하는 방법? (0) | 2018.10.23 |
---|---|
[PYTHON] dtype으로 팬더 열 선택 (0) | 2018.10.23 |
[PYTHON] Mac OS X에서 파이썬을 제어하기 - 환경과 라이브러리 설정하기 (0) | 2018.10.23 |
[PYTHON] 장고 양식 '초기'와 '바운드 데이터'의 차이점은 무엇입니까? (0) | 2018.10.23 |
[PYTHON] 동일한 속성을 참조하는 SQLAlchemy ORM에서 자체 참조 다 대다 관계를 어떻게 성취 할 수 있습니까? (0) | 2018.10.23 |