Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 보안뉴스한줄요약
- GIT
- 보안뉴스 한줄요약
- 자바스크립트 기본 문법
- 카카오프로젝트100
- 카카오프로젝트 100
- Oracle SQL
- 자바스크립트 element api
- 다크웹
- php
- oracle
- 자바스크립트 객체
- 파이썬
- 자바스크립트 API
- 자바스크립트 jQuery
- javascript
- 보안뉴스 요약
- numpy
- 카카오프로젝트
- python
- 랜섬웨어
- 깃허브
- 자바스크립트 prototype
- 보안뉴스요약
- 오라클
- 자바스크립트 node
- oracle db
- ES6
- 보안뉴스
- 자바스크립트
Archives
- Today
- Total
FU11M00N
[Python] write() byte, str 타입 에러 본문
칼리 리눅스에서 censys를 공부하던 도중 어떠한 사이트를 html화 시켜서 가져오는 명령어를 입력하였는데
위 와 같은 에러가 발생했습니다.
찾아보니 python3에서 open() 내장 함수를 쓸 땐 알아야 할 지식이 있더군요
open() 함수는 기본적으로 UTF-8 인코딩 방법을 사용합니다.
python3에는 2가지의 문자 sequence 타입이 있습니다.
bytes : raw 8-bit
str : Unicode
레거시 느낌의 방식이 bytes이고 요즘 쓰는 방식은 str 타입이라고 생각하면 될 것 같네요.
Unicode는 바이너리 데이터로 표현 하는 방법 중 가장 많이 쓰이는 방법이 UTF-8 인코딩 방식이라고 합니다.
만약, Unicode --> Binary로 바꾸고 싶다면 encode( ) 함수를 사용해야 하고,
Binary --> Unicode로 바꾸고 싶다면 decode( ) 함수를 사용해야 합니다.
그러하여 해결방안은
open(filename, "w") 기존의 모드가 "w" 이었던 것을 "wb"로 수정해주면 됩니다.
"w" 모드는 문자를 쓰는 모드이고
"wb" 모드는 바이너리를 쓰는 모드입니다.
그럼 성공적으로 결과 값이 나옵니다.
모자이크 때문에 제대로 된 결괏 값을 볼 수 없으시겠지만, 아까와 같은 에러가 안 뜨고 해결이 됐습니다!
'Programming > Python' 카테고리의 다른 글
[Python] 파이썬 클래스와 메소드 ,객체,변수 (0) | 2020.11.10 |
---|---|
[Python] 웹 크롤링으로 내 블로그 제목만 출력하기 (0) | 2020.11.06 |
[python] 리눅스 에서 파이썬 여러버전 사용하기(업그레이드 or 다운그레이드)Alternatives 활용 (0) | 2020.10.14 |
[Python] 파일 입출력 (0) | 2020.10.13 |
[Python] lambda 함수, 재귀함수, 하노이탑 피보나치,팩토리얼 (0) | 2020.10.13 |
Comments