반응형
ipython notebook 에서 한글 csv 파일 불러오기
환경 : windows 7, python 2.7.5
사용 한글csv 파일 :
--- 한글 text 파일 불어 오듯이 하면, csv 모듈 불러쓸때는, 한글 잘 안됨.
( http://freeprog.tistory.com/9 참고)
1. python IDLE 상 실행시 정상 작동.
import csv with open('csvtest.csv') as csvf: rd = csv.reader(csvf) t = next(rd) for fieldname in t: print fieldname, print for idx, data in enumerate(rd): print idx, data[0], data[1], data[2]
2. 하지만, ipython notebook 에서 실행시 error (이상한 문자로 나옴)
import csv with open('csvtest.csv') as csvf: rd = csv.reader(csvf) t = next(rd) for fieldname in t: print fieldname, print for idx, data in enumerate(rd): print idx, data[0], data[1], data[2]
*** 한글 text 파일 불러오기처럼, codec 모듈 사용해도 에러(UnicodeEncodeError) 발생
import codecs import csv with codecs.open('csvtest.csv','r', encoding = 'euc-kr') as csvf: rd = csv.reader(csvf) t = next(rd) for fieldname in t: print fieldname, print for idx, data in enumerate(rd): print idx, data[0], data[1], data[2]
3. ipython notebook 에서 실행시 한글출력 정상으로 하는 방법.
--- csv 모듈내의 reader() 대신에 unicode 버전 reader (unicode_csv_reader) 사용함
참고 : https://docs.python.org/2/library/csv.html
import codecs import csv # unicode_csv_reader(), utf_8_encoder() # ---> https://docs.python.org/2/library/csv.html 에서 제공함. def unicode_csv_reader(unicode_csv_data, dialect=csv.excel, **kwargs): # csv.py doesn't do Unicode; encode temporarily as UTF-8: csv_reader = csv.reader(utf_8_encoder(unicode_csv_data), dialect=dialect, **kwargs) for row in csv_reader: # decode UTF-8 back to Unicode, cell by cell: yield [unicode(cell, 'utf-8') for cell in row] def utf_8_encoder(unicode_csv_data): for line in unicode_csv_data: yield line.encode('utf-8') with codecs.open('csvtest.csv','r', encoding = 'euc-kr') as csvf: rd = unicode_csv_reader(csvf) t = next(rd) for fieldname in t: print fieldname, print for idx, data in enumerate(rd): print idx, data[0], data[1], data[2]
반응형
'python' 카테고리의 다른 글
pylab, matplotlib pyplot, numpy 구분 (0) | 2014.06.25 |
---|---|
csv writerow 사용시 file open mode 설정주의 (0) | 2014.06.17 |
ipython notebook 에서 한글 txt 파일 불러오기 - windows 7 (0) | 2014.05.09 |
파일내용 hex dump 로 보기 (0) | 2014.04.25 |
python으로 윈도우 terminal 명령어 실행하기 (0) | 2014.04.24 |