TypeError: a bytes-like object is required, not 'str'

2023년 07월 05일 by 진아사랑해

    TypeError: a bytes-like object is required, not 'str' 목차
반응형

개요

파일에 데이터를 쓰면서 위와 같은 에러가 발생하였습니다.

fd.write('나는')

fd.write() 함수에서 이 문제가 나왔습니다.

에러 해결

이 문제의 원인은 file을 어떤 모드로 Open하는가? 의 차이였습니다.

open(fname, 'rb') -> 파일로 부터 데이터를 읽을 때 str 타입이 아니라 byte object 타입으로 데이터를 읽습니다.

open(fname, 'r') -> 파일로 부터 데이터를 읽을 때 str 타입으로 읽습니다.

byte object와 str의 관계는

byte object -> .decode() -> str

str -> .encode -> byte object

위와 같은 함수를 사용하시면 됩니다.

str = '나는'

fd.write(str.encode())로 하면 에러가 사라집니다.

 

str = b"\xAA\x55\xAA\x55\xAA\x55"
fd.write(str)

byte object라고 표시를 하여 주어도 에러가 사라집니다.

 

반응형