python3 부터는 ANSI 기준으로 작성된 파일만 읽기 가능
UTF-8로 된 파일 읽을 시 아래와 같은 에러 발생
UnicodeDecodeError: 'cp949' codec can't decode bytes in position
이런 경우 파일의 인코딩 형식을 변환 해야 한다.
첫번째 방법, 리눅스에서 변경하기
블로그에 iconv 에 대한 설명이 있습니다. (http://amornatura.tistory.com/42)
그냥 UTF-8에서 cp949(ANSI)로 파일을 변환하면 되기 때문에 다음과 같이 입력해줍니다.
$iconv -f UTF-8 -t CP949 -o rename.txt original.txt
두번째 방법, 파이썬3 에서 읽어오기
파이썬3 에서 직접 UTF-8 문서를 읽어올 수 있습니다. 자세한 내용은 다음의 링크를 참조.
(http://www.evanjones.ca/python-utf8.html)
위의 사이트에서 설명해주는 내용을 따라하면,
import codecs
fileObj = codecs.open( "read.txt", "r", "utf-8" )
u = fileObj.readlines()
for i in u :
print(i)
print("\n")
codecs 라는 라이브러리를 불러와서 파일의 형식을 지정해준 후 읽어옵니다.
읽을 때 read()로 하면 한글자씩, readlines()하면 단위줄로 읽어오죠.
'Programming Language > Python' 카테고리의 다른 글
virtualenv 사용법 (0) | 2016.08.30 |
---|---|
파일 입출력 - 이진(binary) 파일 읽기 쓰기 (0) | 2012.10.06 |
파이썬 파일 입출력 + 이진(binary) 형 파일 입출력 (0) | 2012.10.06 |
파이썬 처음 설치 순서 (0) | 2010.12.03 |