복붙노트

[PYTHON] 파이썬으로 터미널 출력을 얻으려면 어떻게해야합니까? [복제]

PYTHON

파이썬으로 터미널 출력을 얻으려면 어떻게해야합니까? [복제]

os.system ()을 사용하여 터미널 명령을 실행할 수 있지만이 명령의 출력을 캡처하려고합니다. 어떻게해야합니까?

해결법

  1. ==============================

    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. ==============================

    2.대신 서브 프로세스 모듈을 사용하십시오.

    대신 서브 프로세스 모듈을 사용하십시오.

    pipe = Popen("pwd", shell=True, stdout=PIPE).stdout
    output = pipe.read()
    

    Python 2.7에서는 check_output () 함수를 사용할 수도 있습니다.

  3. ==============================

    3.Popen을 하위 프로세스에서 사용할 수 있습니다.

    Popen을 하위 프로세스에서 사용할 수 있습니다.

    os는 recomment가 아니며 아래와 같습니다.

    import os
    a  = os.popen('pwd').readlines()
    
  4. ==============================

    4.가장 쉬운 방법은 라이브러리 명령을 사용하는 것입니다.

    가장 쉬운 방법은 라이브러리 명령을 사용하는 것입니다.

    import commands
    print commands.getstatusoutput('echo "test" | wc')
    
  5. from https://stackoverflow.com/questions/4408377/how-can-i-get-terminal-output-in-python by cc-by-sa and MIT license