2010-03-19 2 views
-1

다음과 같이 파이썬 스크립트 기능을 실행합니다 : 텍스트 파일에서 읽고 dict로 데이터를 저장하십시오. 그러나 루프에있을 때 불법적 인 명령이 발생합니다. 왜 이런 일이 일어 났습니까? 코드는 다음과 같이이다 :python AIX5.2의 잘못된 명령어

d={} 
datafile=open('a.txt') # a big text file 
for line in datafile: 
    line=line.rstrip('\n') 
    for token in line.split(): 
     print("Parsing line %d." % token[0]) 
     d[(int(token[0]))]=token[1:] 

다음 메시지는 다음과 같이이다 :

Parsing line 1. 
Parsing line 2. 
............ 
Parsing line 1064 
Parsing line 1065 
Illegal instruction 

문제가 무엇입니까? 제 플랫폼은 AIX 5.2의 Python 2.6.2입니다. 제발 도와주세요, 고마워요!

+1

"잘못된 명령"이란 무엇입니까? 무엇이 더 인쇄됩니까? –

답변

3

이것은 매우 잘못되었습니다. tokenline.split()에 의해 반환 된 문자열 배열의 문자열입니다. 따라서 token[0]은 해당 문자열의 첫 번째 문자입니다. 따라서 출력에 Parsing line 1065과 같은 것을 얻을 것이라고는 생각하지 않습니다. Mark가 쓴대로 TypeError이 표시됩니다.

  1. 실제 코드
  2. 에게 (처음 몇 줄의 발췌 라인 1,066분의 1,065 충분할 것이다) 실제 데이터를 게시하시기 바랍니다
  3. 실제 오류 메시지.

그렇지 않으면 도움이 될만한 방법이 없습니다.

+1

+1 "% d"문자열을 서식 지정하면 TypeError가 나타납니다. 이 코드가 설명 된 결과를 생성하는 것은 거의 불가능합니다. –

+0

두 번째'for' 루프는 그가하려고하는 것처럼 보이지 않는 것처럼 보입니다. –