[ 작업 환경 ]

Macbook Pro M1 Max 16inch

Python 3.10.4

 

 - 읽어오는 test_data.csv 파일

test_data.csv
2.61MB

 - 사용 파일 (csv 읽어오는 python 파일)

control_data.py
0.00MB

import csv
import time
 
f = open('test_data.csv','r')
rdr = csv.reader(f)
 
for line in rdr:
    print(line)
    time.sleep(1)
 
f.close()

 

 

 

 

 

 [ 문제 상황 ]

  File "/Users/junyeong/control_data.py", line 7, in <module>
    for line in rdr:
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 20: invalid start byte

 

 

 

 

 

 [ 문제 원인 ]

 

읽어오려는 파일의 데이터 형식이 utf-8이 아닌데, utf-8로 진행하려 하기 때문에 발생하는 문제입니다.

파일의 데이터 형식을 인코딩 설정에서 건드려줘야 해결됩니다.

 

 

 

 

 

 [ 해결 방법 ]

 

필자의 경우 'euc-kr' 이었기에 encoding 옵션을 주어 해결했습니다.

# 기존 코드
f = open('test_data.csv','r')
# 변경 후 코드
f = open('test_data.csv','r', encoding='euc-kr')

 

 - 완성 최종 파일

control_data.py
0.00MB

import csv
import time
 
f = open('test_data.csv','r', encoding='euc-kr')
rdr = csv.reader(f)
 
for line in rdr:
    print(line)
    time.sleep(1)
 
f.close()

 

 

+ Recent posts