은 b
당신이해야하는 것을 나타냅니다 bytes
바이트의 바이너리 순서가 아니라 유니 코드 문자의 문자열이다. 문자가 아닌 출력 바이트를 하위 처리하므로 이것이 communicate()
반환됩니다.
bytes
유형은 직접하지 않습니다 print()
당신이 표시되는 것, 그래서 수 repr
의 bytes
당신이 가지고 있습니다. 하위 프로세스에서받은 바이트의 인코딩을 알고있는 경우을 사용 decode()
하여 인쇄 가능한 파일로 변환 할 수 있습니다 str
.
>>> print(b'hi\n'.decode('ascii'))
hi
물론이 특정 예제는 실제로 하위 프로세스에서 ASCII를받는 경우에만 작동합니다. ASCII가 아닌 경우 예외가 발생합니다.
>>> print(b'\xff'.decode('ascii'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0…
개행은 echo hi
출력 이있는 부분입니다 . echo
의 임무는 전달한 매개 변수를 출력하고 그 뒤에 개행 문자를 출력하는 것입니다. 프로세스 출력을 둘러싼 공백에 관심이 없다면 다음 strip()
과 같이 사용할 수 있습니다 .
>>> b'hi\n'.strip()
b'hi'