当前位置:   article > 正文

python tokenize怎么用_tokenize --- 对 Python 代码使用的标记解析器 — Python 3.9.1 說明文件...

tokenize()

对输入进行解析标记¶

主要的入口是一个生成器 generator:

tokenize.tokenize(readline)¶

生成器 tokenize() 需要一个 readline 参数,这个参数必须是一个可调用对象,且能提供与文件对象的 io.IOBase.readline() 方法相同的接口。每次调用这个函数都要 返回字节类型输入的一行数据。

The generator produces 5-tuples with these members: the token type; the

token string; a 2-tuple (srow, scol) of ints specifying the row and

column where the token begins in the source; a 2-tuple (erow, ecol) of

ints specifying the row and column where the token ends in the source; and

the line on which the token was found. The line passed (the last tuple item)

is the physical line. The 5 tuple is returned as a named tuple

with the field names:

type string start end line.

The returned named tuple has an additional property named

exact_type that contains the exact operator type for

OP tokens. For all other token types exact_type

equals the named tuple type field.

3.1 版更變:Added support for named tuples.

3.3 版更變:Added support for exact_type.

tokenize() determines the source encoding of the file by looking for a

UTF-8 BOM or encoding cookie, according to PEP 263.

tokenize.generate_tokens(readline)¶

Tokenize a source reading unicode strings instead of bytes.

Like tokenize(), the readline argument is a callable returning

a single line of input. However, generate_tokens() expects readline

to return a str object rather than bytes.

The result is an iterator yielding named tuples, exactly like

tokenize(). It does not yield an ENCODING token.

All constants from the token module are also exported from

tokenize.

Another function is provided to reverse the tokenization process. This is

useful for creating tools that tokenize a script, modify the token stream, and

write back the modified script.

tokenize.untokenize(iterable)¶

Converts tokens back into Python source code. The iterable must return

sequences with at least two elements, the token type and the token string.

Any additional sequence elements are ignored.

The reconstructed script is returned as a single string. The result is

guaranteed to tokenize back to match the input so that the conversion is

lossless and round-trips are assured. The guarantee applies only to the

token type and token string as the spacing between tokens (column

positions) may change.

It returns bytes, encoded using the ENCODING token, which

is the first token sequence output by tokenize(). If there is no

encoding token in the input, it returns a str instead.

tokenize() needs to detect the encoding of source files it tokenizes. The

function it uses to do this is available:

tokenize.detect_encoding(readline)¶

The detect_encoding() function is used to detect the encoding that

should be used to decode a Python source file. It requires one argument,

readline, in the same way as the tokenize() generator.

It will call readline a maximum of twice, and return the encoding used

(as a string) and a list of any lines (not decoded from bytes) it has read

in.

It detects the encoding from the presence of a UTF-8 BOM or an encoding

cookie as specified in PEP 263. If both a BOM and a cookie are present,

but disagree, a SyntaxError will be raised. Note that if the BOM is found,

'utf-8-sig' will be returned as an encoding.

If no encoding is specified, then the default of 'utf-8' will be

returned.

Use open() to open Python source files: it uses

detect_encoding() to detect the file encoding.

tokenize.open(filename)¶

Open a file in read only mode using the encoding detected by

detect_encoding().

3.2 版新加入.

exceptiontokenize.TokenError¶

Raised when either a docstring or expression that may be split over several

lines is not completed anywhere in the file, for example:

"""Beginning of

docstring

或是:

[1,

2,

3

Note that unclosed single-quoted strings do not cause an error to be

raised. They are tokenized as ERRORTOKEN, followed by the

tokenization of their contents.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/828524
推荐阅读
相关标签
  

闽ICP备14008679号