Python

[Python] 파이썬 크롤링 파일 쓰기시 UnicodeEncodeError: ‘cp949’ codec can’t encode character 오류 처리 방법

크롤링 후 txt파일로 생성하는 과정에서 UnicodeEncodeError: ‘cp949’ codec can’t encode character ‘xf4’ in position : illegal multibyte sequence 오류가 발생하였습니다.

Traceback (most recent call last):
  File "C:pythonWorkspacemain.py", line 69, in <module>
    parsing_game_info(div_list, 'mens')
  File "C:pythonWorkspacemain.py", line 56, in parsing_game_info
    create_file(filename, html)
  File "C:pythonWorkspacemain.py", line 19, in create_file
    f.write(html)
UnicodeEncodeError: 'cp949' codec can't encode character 'xf4' in position 18357: illegal multibyte sequence

오류가 발생한 스크립트는 다음과 같습니다.


def create_file(file_name, html): 
    if not os.path.isdir(path):
        os.makedirs(path)

    fine_name = "test_" + file_name + ".txt"
    f = open(path + fine_name, 'w')
    # f.write('---------------------- create' + fine_name +'------------------------nn')
    f.write(html)
    f.close()

 

[오류 해결방법]

open()메서드 선언시 encoding=’cp949′ 옵션을 주고 저장을 시도해보세요.


def create_file(file_name, html): 
    if not os.path.isdir(path):
        os.makedirs(path)

    fine_name = "test_" + file_name + ".txt"
    f = open(path + fine_name, 'w', encoding='cp949')
    # f.write('---------------------- create' + fine_name +'------------------------nn')
    f.write(html)
    f.close()

 

위와 같이 처리하였으나 동일한 오류가 발생한다면 utf-8로 처리를 하시면 될거에요.


def create_file(file_name, html): 
    if not os.path.isdir(path):
        os.makedirs(path)

    fine_name = "test_" + file_name + ".txt"
    f = open(path + fine_name, 'w', encoding='utf-8')
    # f.write('---------------------- create' + fine_name +'------------------------nn')
    f.write(html)
    f.close()

 

[REFERENCE]

 

[Python] 파이썬 파일 생성(txt) 및 읽기 쓰기(I/O) 예제 : open(), close(), write(), with(), readline(), read(), read

파일 생성하기 & 파일에 쓰기 옵션 설명 r 파일을 읽기 w 파일에 쓰기 a 파일의 마지막 라인에 새로운 내용 추가 open메소드(함수)는 파일이름과 파일열기 모드를 인자(입력값)로 받습니다. 파일에

playground.naragara.com

 

Leave a Reply

error: Content is protected !!