복붙노트

[PYTHON] 파이썬에서 subprocess.call을 사용할 때 stdout을 파일로 리디렉션하는 방법은 무엇입니까?

PYTHON

파이썬에서 subprocess.call을 사용할 때 stdout을 파일로 리디렉션하는 방법은 무엇입니까?

다른 파이썬 스크립트 (A)에서 파이썬 스크립트 (B)를 호출하고 있습니다.

subprocess.call을 사용하여 B의 표준 출력을 어떻게 지정하는 파일로 리디렉션합니까?

파이썬 2.6.1을 사용하고 있습니다.

해결법

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

    1.파일을 stdout 매개 변수로 subprocess.call에 전달합니다.

    파일을 stdout 매개 변수로 subprocess.call에 전달합니다.

    with open('out-file.txt', 'w') as f:
        subprocess.call(['program'], stdout=f)
    
  2. ==============================

    2.대체 접근법

    대체 접근법

    import subprocess
    p=subprocess.Popen('lsblk -l|tee a.txt',stdout=subprocess.PIPE,shell=True)
    (output,err)=p.communicate()
    p_status=p.wait()
    print output
    

    위 코드는 명령 출력을 a.txt 파일에 씁니다.

  3. from https://stackoverflow.com/questions/9347004/how-do-i-redirect-stdout-to-a-file-when-using-subprocess-call-in-python by cc-by-sa and MIT license