Python 2에서 기본 출력 인코딩을 설정하는 것은 잘 알려진 관용구입니다.파이썬 3에서 sys.stdout 인코딩을 설정하는 방법?
sys.stdout = codecs.getwriter("utf-8")(sys.stdout)
이 코드는 출력을 UTF-8로 인코딩하는 코덱 작성기에서 sys.stdout
객체를 래핑합니다.
sys.stdout = codecs.getwriter("utf-8")(sys.stdout)
그러나
sys.stdout.write()
은
str
를 예상하지만 인코딩 결과는
bytes
이므로
codecs
이 인코딩 된 바이트를 원래
sys.stdout
에 쓰려고 할 때 오류가 발생하므로이 기술은 Python 3에서 작동하지 않습니다.
파이썬 3에서 올바른 방법은 무엇입니까?
2to3은 이와 같은 질문에 유용한 도구입니다. –
@dan_waterworth : 이전에는 그렇게 생각하지 않았지만 지금은'2to3'을 시도했지만 주어진 코드에 대한 변경을 제안하지 않았습니다. –
새 코드가 작동하지 않으면 버그로 추가하는 것이 좋습니다. –