- 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라고 표시를 하여 주어도 에러가 사라집니다.
반응형
'python & 라즈베리파이' 카테고리의 다른 글
[Linux]Ubuntu의 패키지 관리 프로그램(apt, apt-get, dpkg) (0) | 2023.07.07 |
---|---|
[Linux]Windows에서 우분트 시동 디스크 만들기 (0) | 2023.07.06 |
ModuleNotFoundError: No module named 'termcolor' (0) | 2023.07.05 |
[Aduino]아두이노 환경에서 eps-32 elf 및 bin 파일만들기 (0) | 2023.06.30 |
[Linux]Git에서 원하는 디렉토리나 파일가져오기 (0) | 2023.06.26 |