Python의 바이트 인코딩 및 디코딩: 문자열 변환 가이드
Bytes 객체는 외부 프로그램과 상호작용하거나 이진 데이터를 처리할 때 일반적으로 발생합니다. . 효과적으로 작업하려면 문자열과의 변환이 필요할 수 있습니다. 이 기사에서는 외부 명령의 출력이 포함된 바이트열 객체를 일반 Python 문자열로 변환하는 것과 관련된 특정 문제를 다룰 것입니다.
문제: 바이트를 문자열로 변환
Python 3의 다음 예를 고려하십시오.
>>> from subprocess import * >>> stdout = Popen(['ls', '-l'], stdout=PIPE).communicate()[0] >>> stdout b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2\n'
stdout 변수에는 'ls의 출력을 나타내는 바이트열 객체가 포함되어 있습니다. -l' 명령. 사람이 읽을 수 있는 형식으로 인쇄하려면 문자열로 변환해야 합니다.
해결 방법: Decode 메서드 사용
decode() 메서드가 사용됩니다. 바이트 객체를 문자열로 변환합니다. 바이트 객체에 있는 데이터의 문자 인코딩을 지정하는 인코딩 매개변수를 사용합니다.
>>> stdout_str = stdout.decode('utf-8') >>> print(stdout_str) -rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1 -rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2
이 예에서는 'utf-8'이 텍스트에 대한 일반적인 인코딩이므로 인코딩으로 지정합니다. 데이터. 그러나 처리 중인 특정 데이터에 대해 올바른 인코딩을 사용하는 것이 중요합니다.
참고:
위 솔루션은 텍스트 데이터를 나타내는 바이트 객체를 변환하는 데 적합합니다. , 모든 바이트열 객체에 텍스트가 포함되어 있는 것은 아니라는 점에 유의하는 것이 중요합니다. 바이너리 데이터를 처리하려면 다양한 기술이 필요할 수 있습니다.
위 내용은 Python에서 외부 명령의 바이트 개체를 문자열로 어떻게 변환합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!