如何处理分词错误?

1 投票
1 回答
9586 浏览
提问于 2025-04-16 02:16

下面是我用来将字符串分词的代码。

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))

我希望能够忽略这些错误,完成分词的过程。我有很多数据,所以我可以接受因为这些错误而丢失一部分数据。不过,我不太确定该怎么写代码来实现这个功能。有没有人能帮我写一下代码呢?

谢谢。

编辑1:

在尝试这个

except tokenize.TokenError:
    pass

时,我收到了以下错误信息:

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

1 个回答

3

注意到你的错误信息中提到 tokenize.TokenError。这就是你的代码抛出的错误类型。要处理这个错误,你可以使用 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

撰写回答