실행 파일 출력을 파일과 터미널 모두로 리디렉션하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-04 08:36:30
원래의
305명이 탐색했습니다.

How to Redirect Executable Output to Both Files and the Terminal?

파일과 터미널 모두에 출력되는 실행 파일 실행

subprocess.call()을 사용하여 여러 실행 파일을 실행할 때 파일과 터미널 모두에 대한 표준 출력 및 오류 출력. 그러나 stdout=outf 또는 stderr=errf를 사용하면 출력이 터미널에 표시되지 않고 파일에 기록되어야만 지정됩니다.

원하는 동작을 달성하려면 Popen 클래스를 직접 활용하고 stdout=PIPE 인수는 파일 대신 파이프로 표준 출력을 캡처합니다. 이를 수행하는 방법은 다음과 같습니다.

<code class="python">from subprocess import Popen, PIPE

with open("out.txt", "wb") as outf, open("err.txt", "wb") as errf:
    p = Popen(["cat", __file__], stdout=PIPE, stderr=errf)
    # Read the output from the pipe
    output = p.stdout.read()
    # Write the output to the terminal
    print(output)
    # Ensure the process completes and wait for the output to be fully written
    p.wait()</code>
로그인 후 복사

이 예에서는 stdout을 파이프로 캡처하고 p.stdout.read()를 사용하여 읽습니다. 그런 다음 프로세스가 완료되고 출력이 파일에 완전히 기록될 때까지 기다리기 전에 출력을 터미널에 인쇄합니다. 이렇게 하면 출력이 터미널에 표시되고 지정된 파일에 기록됩니다.

위 내용은 실행 파일 출력을 파일과 터미널 모두로 리디렉션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!