>백엔드 개발 >파이썬 튜토리얼 >Python의 표준 출력을 문자열 버퍼로 어떻게 리디렉션할 수 있나요?

Python의 표준 출력을 문자열 버퍼로 어떻게 리디렉션할 수 있나요?

Barbara Streisand
Barbara Streisand원래의
2024-11-24 07:18:13614검색

How Can I Redirect Python's Standard Output to a String Buffer?

stdout을 Python의 문자열 버퍼로 리디렉션

ftplib 패키지를 사용하여 Python FTP 클라이언트를 개발할 때 패키지 내의 특정 기능에 문자열 출력이 부족한 경우가 발생할 수 있습니다. 대신 표준 출력(stdout)으로 인쇄합니다. 이 문제를 해결하려면 stdout을 편리하게 읽을 수 있는 객체로 리디렉션하는 것이 필요합니다.

open()을 통한 파일 기반 리디렉션도 옵션이지만 로컬 드라이브를 활용하지 않는 대체 방법은 다음과 같습니다. 더 효율적입니다. Java의 BufferedReader는 버퍼를 스트림으로 래핑하는 귀중한 예를 제공합니다.

Python에서 유사한 기능을 얻으려면 다음 접근 방식을 사용하십시오.

from cStringIO import StringIO # Python3 use: from io import StringIO
import sys

old_stdout = sys.stdout
sys.stdout = mystdout = StringIO()

# Execute code that would normally print to stdout ...

sys.stdout = old_stdout

# Obtain the captured output as a string from mystdout.getvalue()

stdout을 StringIO 인스턴스로 리디렉션하면 필요할 때마다 출력을 문자열로 캡처하고 검색할 수 있습니다. 이 기술을 사용하면 유연성이 향상되고 외부 파일이 개입할 필요가 없습니다.

위 내용은 Python의 표준 출력을 문자열 버퍼로 어떻게 리디렉션할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.