如何使用Tokenize模块对python代码进行令牌化?

问题描述 投票:0回答:1

考虑到我有一个包含python代码的字符串。

input = "import nltk
 from nltk.stem import PorterStemmer
 porter_stemmer=PorterStemmer()
 words=["connect","connected","connection","connections","connects"]
 stemmed_words=[porter_stemmer.stem(word) for word in words]
 stemmed_words"

如何标记代码?我找到了标记化模块(https://docs.python.org/3/library/tokenize.html)。但是,我不清楚如何使用该模块。它具有tokenize.tokenize(readline),但该参数使用生成器,而不是字符串。

python-3.x tokenize
1个回答
0
投票
tokenize.tokenize采用的方法不是字符串。该方法应该是来自IO对象的readline方法。另外,tokenize.tokenize希望readline方法返回字节,可以改为使用tokenize.generate_tokens来返回字符串的readline方法。
您的输入也应该在文档字符串中,因为它的长度是多行。

有关https://docs.python.org/3/library/io.html#io.TextIOBase的更多信息,请参见io.StringIO有关https://docs.python.org/3/library/tokenize.html#tokenize.generate_tokens的更多信息,请参见tokenize.generate_tokens

© www.soinside.com 2019 - 2024. All rights reserved.