programing

파이썬 문자열 앞에 있는 b 접두사는 무엇을 의미합니까?

i4 2023. 5. 6. 14:02
반응형

파이썬 문자열 앞에 있는 b 접두사는 무엇을 의미합니까?

우연히 발견한 파이썬 소스 코드에서 다음과 같은 문자열 앞에 작은 b가 있습니다.

b"abcdef"

유니코드 문자열을 나타내는 접두사와 원시 문자열 리터럴의 접두사에 대해 알고 있습니다.

무엇을 합니까?b어떤 종류의 소스 코드를 의미하며 접두사가 없는 일반 문자열과 정확히 유사한 것처럼 보이는데 유용합니까?

b접두사는 문자열 리터럴을 나타냅니다.

Python 3 소스 코드에서 사용되는 것을 보면 정규 Unicode 개체가 아닌 개체를 만듭니다.Python 쉘이나 목록, 딕트 또는 기타 컨테이너 콘텐츠의 일부로 메아리치는 것을 보면,bytes이 표기법을 사용하여 표현된 개체입니다.

bytes개체는 기본적으로 0-255 범위의 정수 시퀀스를 포함하지만, Python은 이 바이트를 ASCII 코드 포인트로 표시하여 내용을 더 쉽게 읽을 수 있도록 합니다.인쇄 가능한 ASCII 문자 범위를 벗어나는 바이트는 이스케이프 시퀀스(예:\n,\x82등).반대로 ASCII 문자와 이스케이프 시퀀스를 모두 사용하여 바이트 값을 정의할 수 있습니다. ASCII 값의 경우 숫자 값이 사용됩니다(예:b'A'==b'\x41')

왜냐하면bytes객체는 정수의 시퀀스로 구성되며, 당신은 다음을 구성할 수 있습니다.bytes목록과 같이 값이 0-255 범위인 정수의 다른 시퀀스에서 객체:

bytes([72, 101, 108, 108, 111])

그리고 인덱싱은 정수를 반환합니다(그러나 슬라이싱은 새로운 것을 생성합니다).bytes값; 위의 예에 대해,value[0]너에게 주는72,그렇지만value[:1]이라b'H'72는 대문자 H)의 ASCII 코드 포인트입니다.

bytes인코딩된 텍스트를 포함모델 이진 데이터.만약 당신이bytes값에 텍스트가 포함되어 있으므로 먼저 올바른 코덱을 사용하여 디코딩해야 합니다.예를 들어 데이터가 UTF-8로 인코딩된 경우 유니코드를 얻을 수 있습니다.str값 포함:

strvalue = bytesvalue.decode('utf-8')

반대로, 텍스트에서 이동하려면str에 반대하는.bytes인코딩해야 합니다.사용할 인코딩을 결정해야 합니다. 기본값은 UTF-8이지만 필요한 것은 사용 사례에 따라 크게 다릅니다.

bytesvalue = strvalue.encode('utf-8')

생성자를 사용할 수도 있습니다.bytes(strvalue, encoding)마찬가지로.

디코딩 및 인코딩 방법 모두 오류 처리 방법을 지정하기 위해 추가 인수를 사용합니다.

2 2및 2 Python 2, 버전 2.6및 2.7은을 사용하여 문자열 것을 합니다.b'..'문자열 리터럴 구문을 사용하여 Python 2와 3 모두에서 작동하는 코드를 쉽게 만들 수 있습니다.

bytes은 물는불변다니, 치마체처럼입니다.str현악기는.가변 바이트 값이 필요한 경우 개체를 사용합니다.

은 Python3입니다.bytes 문자 그대로의이 접두사는 Python 2.5 이상 버전에는 없습니다(일반 문자열 2.x와 동일한 반면 일반 문자열 3.x는 다음을 포함하는 리터럴과 동일합니다).u2.x)의 접두사입니다.Python 2.6+에서는 3.x와의 호환성을 위해 일반 문자열과 동일합니다.

언급URL : https://stackoverflow.com/questions/2592764/what-does-a-b-prefix-before-a-python-string-mean

반응형