2010-08-03 3 views
1

문자열을 토큰 화하는 데 사용하는 코드 조각을 아래에서 찾으십시오. 나는 이러한 오류를 무시하고 토큰 화 프로세스를 완료 할 수 있도록 할토큰 화 오류를 처리하는 방법은 무엇입니까?

raise TokenError, ("EOF in multi-line statement", (lnum, 0)) 
tokenize.TokenError: ('EOF in multi-line statement', (2, 0)) 

- :

strList = list(token[STRING] for token in generate_tokens(StringIO(line).readline) if token[STRING]) 

내가 좋아하는 읽기 오류가 발생합니다. 데이터가 너무 많아서 이러한 오류에 대한 데이터 일부가 손실됩니다. 그러나 원하는 기능을 구현할 수있는 코드를 작성하는 방법을 모르겠습니다. 어떤 사람이 코드를 도와 주시겠습니까?

감사합니다. 나는 다음과 같은 오류 메시지가 당신의 오류 메시지가 tokenize.TokenError를 말한다

except tokenize.TokenError: 
NameError: name 'tokenize' is not defined 

답변

3

주의를 얻을

except tokenize.TokenError: 
    pass 

시도에

- :

EDIT1. 그것이 코드가 올라간 Exception 유형입니다. 오류를 잡으려면 try...except 블록을 사용하십시오. 오류를 건너 뛰려면 except 블록에 pass을 입력하기 만하면됩니다.

import tokenize 
try: 
    strList = list(token[STRING] for token in tokenize.generate_tokens(StringIO(line).readline) if token[STRING]) 
except tokenize.TokenError: 
    pass 
+0

나는 그것을 시도했다. 그것은 작동하지 않았다. –

+0

죄송합니다. tokenize 모듈을 가져 오지 않았습니다. 당신의 도움을 주셔서 감사합니다. –

+1

아 맞아. 'tokenize.generate_tokens'보다는'generate_tokens'를 사용하고 싶었습니다. 나는 이것 때문에 barenames를 피하려고 노력한다 : http://stackoverflow.com/questions/1744258/is-import-module-better-coding-style-than-from-module-import-function – unutbu

관련 문제