tokenize 是 Python 標準庫,用於將 Python 源代碼分解為 **標記流**,返回一個 **迭代器**,每次調用 next() 產生一個 TokenInfo 對象,包含類型、字符串、行列位置等信息。
tokenize.generate_tokens(readline):接收一個可調用對象(如文件對象的 readline 方法),返回迭代器。tokenize.untokenize(iterable):逆操作,將標記序列還原為源代碼字符串。import tokenize
# 打開文件獲取 readline 方法
with open('Yield.py', 'rb') as f:
tokens = tokenize.generate_tokens(f.readline)
for tok in tokens:
print(tok)
# TokenInfo(type=1, string='def', start=(1,0), end=(1,3), line='def foo():')
輸出包含:NAME、NUMBER、STRING、OP、NEWLINE、INDENT/DEDENT 等標記類型。
rb 模式)或實現 readline 返回字節的對象。tokenize.open() 自動處理編碼聲明。token 模塊(如 token.NAME、token.OP)。