2013-10-07 7 views
3

문자열을 정수로 변환해야합니다. 문제의 문자열은 하나의 숫자입니다.파이썬 : 문자열을 정수로 변환하기

ValueError: invalid literal for int() with base 10: '\xef\xbb\xbf3\n' 

가 어떻게 정수로 문자열을 변환합니까 :

L= linecache.getline('data.txt', 1) 
L=int(L) 

print L 

나는 오류가 나타납니다?

+3

@MattBall 중복 전혀. 당신이 링크 한 것은이 질문의 저자를 귀찮게하는 예기치 않은 BOM과 관련이 없습니다. – Hyperboreus

답변

4

파일은 BOM으로 시작됩니다. 숫자를 파싱하기 전에 제거하십시오.

5

파일에 UTF-8 BOM이 포함되어 있습니다.

>>> import codecs 
>>> codecs.BOM_UTF8 
'\xef\xbb\xbf' 

linecache.getline 인코딩을 지원하지 않습니다.

사용 codecs.open :

with codecs.open('data.txt', encoding='utf-8-sig') as f: 
    L = next(f) 
    L = int(L) 
    print L