>백엔드 개발 >파이썬 튜토리얼 >Python에서 외부 명령의 바이트 개체를 문자열로 어떻게 변환합니까?

Python에서 외부 명령의 바이트 개체를 문자열로 어떻게 변환합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-19 09:52:09816검색

How Do I Convert Bytes Objects from External Commands to Strings in Python?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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