如何处理标记化错误?

时间:2010-08-03 18:00:07

标签: python tokenize stringio

请在下面找到我用来标记字符串的代码段。

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

我收到的错误如下: -

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

我希望忽略此类错误,并能够完成标记化过程。我有很多数据,所以我可以将部分数据丢失给这些错误。但是,我不确定如何编写能够实现所需功能的代码片段。有人可以帮我解决这个问题吗?

谢谢。

EDIT1: -

尝试

except tokenize.TokenError:
    pass

我收到以下错误消息

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

1 个答案:

答案 0 :(得分:3)

请注意,您的错误消息显示为tokenize.TokenError。这是您的代码提出的Exception类型。要捕获错误,请使用try...except块。要跳过错误,您只需将pass放入except块。

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