파이썬 stdout 저장

파이썬에서 별도의 외부 프로그램을 실행 후, 해당 프로세스의 stdout을 받아와야 할 때가 있습니다.

이 경우에는 subprocess.call() 보다는 파이프를 이용해야 합니다.


import sys

args = ['ls','-alh']
sys.stdout = open("result.txt", "w")
sys.stdout.flush()  # sysout 버퍼를 비웁니다.
process = subprocess.Popen(args1, shell=False, stdout=sys.stdout)
process.wait()

실행해보면 해당 코드를 실행한 곳에 result.txt 가 생성되고 ls -alh 의 결과물이 그대로 저장되어 있는 것을 확인할 수 있습니다.

참고자료

Python 공식 문서

Leave a Reply

Leave a Reply

Your email address will not be published. Required fields are marked *