2014-10-28 3 views
0

이 오류는 Python에서 발생합니다.ValueError : 밑이 10 인 int()에 대한 리터럴이 올바르지 않습니다. '

텍스트 파일에서 읽고 값을 변수에 넣고 Integer로 변환하려고합니다. 이 내 52:56 사이에있는 부분은 올해 그래서 그럼 2013

ChangeOverStartDateYYYY= int(line2[52:56],10) 
print ChangeOverStartDateYYYY 

2014처럼 항상이다

fo = open("HCTC3152_INF.TXT", "r") 
line1 = fo.readline() 

코드, 명령 프롬프트에서 인쇄 항상 년, 그리고에서이다 끝 부분에 오류가 나타납니다.

+0

(라인 ...)' ,'print line2 [52:56]'명령을 사용하여 원하는 것을 얻었는지 확인하십시오. 어쩌면 선이 올바른 형식이 아니거나 짧은 선으로 표시됩니다. – fredtantini

+0

글쎄, 방금 말한 결과는 다음과 같습니다. "이 줄에 있습니다 :"+ line2 [52:56 ] 그 결과는 다음과 같습니다. 2013 그리고 int (line2 [52:56], 10)를 인쇄하면 결과는 2013 이지만 여전히 값 오류가 표시됩니다. : –

+1

HI! 나는 빈 줄에 대해서 생각해 봤는데, 내 코드가 while 루프에 있기 때문에 마지막 줄을 비워 뒀다. 그래서 나는 나에게 오류를 주었다. –

답변

2

빈 줄이 있거나 최소한 행의 길이가 일 때보다 52 문자가 짧습니다. 최소 길이

if not line.strip(): 

은 (공백 만 구성된) 빈 줄을 건너 뛸 또는 시험 :

건너 뛰기 그 라인은`INT 전에

if len(line) >= 56: 
관련 문제