1

文字列をトークン化するために使用するコードを以下に示します。

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
4

1 に答える 1

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
于 2010-08-03T18:07:05.147 に答える