stdout을 문자열 버퍼로 리디렉션
Python의 FTP 클라이언트와 같은 라이브러리로 작업할 때 특정 함수가 stdout에 출력을 제공하는 상황이 발생할 수 있습니다. 문자열 값을 반환하는 대신. 이 출력을 캡처하려면 stdout을 데이터를 보유할 수 있는 적절한 객체로 리디렉션해야 합니다.
Java의 BufferedReader와 달리 Python은 다른 접근 방식을 제공합니다. cStringIO 모듈(Python 3에서는 io로 대체됨)은 메모리 내 버퍼 역할을 하는 StringIO 클래스를 제공합니다. 이 버퍼는 출력을 가로채기 위해 stdout과 같은 스트림 주위를 효율적으로 래핑할 수 있습니다.
이 리디렉션을 구현하려면 다음 단계를 따르세요.
import sys from cStringIO import StringIO # Store the original stdout stream old_stdout = sys.stdout # Create the in-memory buffer sys.stdout = mystdout = StringIO() # Execute code that generates output normally directed to stdout # Restore the original stdout stream sys.stdout = old_stdout # Access the output via mystdout.getvalue()
이 접근 방식을 사용하면 함수에 의해 생성된 출력이 나중에 mystdout.getvalue()를 사용하여 해당 값을 읽어 액세스할 수 있는 StringIO 객체(mystdout)에 캡처됩니다.
위 내용은 Python에서 stdout을 문자열 버퍼로 리디렉션하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!