python tokenize()_Python tokenize-rt包_程序模块 - PyPI - Python中文网

本文介绍了 `tokenize-rt` 模块,它是 Python 的 `tokenize` 模块的增强版,增加了 `ESCAPED_NL` 和 `UNIMPORTANT_WS` 两种令牌,并提供 `src_to_tokens` 和 `tokens_to_src` 方法进行令牌的转换。此外,还详细讲解了 `tokenize-rt` 中的数据结构和辅助函数,以及它与标准库 `tokenize` 的区别和示例用法。
摘要由CSDN通过智能技术生成

68747470733a2f2f6465762e617a7572652e636f6d2f61736f7474696c652f61736f7474696c652f5f617069732f6275696c642f7374617475732f61736f7474696c652e746f6b656e697a652d72743f6272616e63684e616d653d6d617374657268747470733a2f2f696d672e736869656c64732e696f2f617a7572652d6465766f70732f636f7665726167652f61736f7474696c652f61736f7474696c652f32352f6d61737465722e737667

标记化rt

stdlibtokenize模块不能正确往返。这个包装纸

stdlib周围提供了两个额外的令牌ESCAPED_NL和

UNIMPORTANT_WS,和Token数据类型。使用src_to_tokens和

tokens_to_src往返。

如果要基于

python标记化。

安装

pip install tokenize-rt

用法

数据结构

tokenize_rt.Offset(line=None, utf8_byte_offset=None)

标记偏移量,在交叉引用ast和

标记化源。

tokenize_rt.Token(name, src, line=None, utf8_byte_offset=None)

构造标记name:列出在token.tok_name或

ESCAPED_NL或UNIMPORTANT_WS

src:令牌的源代码为文本

line:此标记出现的行号。这将是None的

ESCAPED_NL和UNIMPORTANT_WS标记。

utf8_byte_offset:此标记出现在

行。对于ESCAPED_NL和UNIMPORTANT_WS令牌,这将是None。

tokenize_rt.Token.offset

检索此令牌的Offset。

转换到和从Token表示

tokenize_rt.src_to_tokens(text: str) -> List[Token]

tokenize_rt.tokens_to_src(Iterable[Token]) -> str

由tokenize-rt添加的附加令牌

tokenize_rt.ESCAPED_NL

tokenize_rt.UNIMPORTANT_WS

助手

tokenize_rt.NON_CODING_TOKENS

包含标记的frozenset,这些标记可能出现在其他标记之间,而不是

影响控制流或代码:COMMENT

ESCAPED_NL

NL

UNIMPORTANT_WS

tokenize_rt.parse_string_literal(text: str) -> Tuple[str, str]

将字符串文本解析为其前缀和字符串内容>>>parse_string_literal('f"foo"')('f', '"foo"')

tokenize_rt.reversed_enumerate(Sequence[Token]) -> Iterator[Tuple[int, Token]]

产生(index, token)对。用于重写源代码。

tokenize_rt.rfind_string_parts(Sequence[Token], i) -> Tuple[int, ...]

查找(连接的)字符串文本的字符串部分的索引i应该从字符串文本的结尾开始

对于不是字符串文本的内容,返回()(空元组)>>>tokens=src_to_tokens('"foo" "bar".capitalize()')>>>rfind_string_parts(tokens,2)(0, 2)>>>tokens=src_to_tokens('("foo" "bar").capitalize()')>>>rfind_string_parts(tokens,4)(1, 3)

与tokenize的区别

tokenize-rt为反斜杠转义的换行符“token”添加ESCAPED_NL

tokenize-rt为空白添加UNIMPORTANT_WS(在tokenize中丢弃)

tokenize-rt规范化字符串前缀,即使未对其进行分析--

例如,这意味着即使在

Python2。

tokenize-rt规范化python 2长文本(4l/4L)和八进制

python 3中的文本(0755)(以便在

运行python 3)。

示例用法

欢迎加入QQ群-->: 979659372

9ddc589a9bae9dd81334056da3504a2c.png

推荐PyPI第三方库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值