Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3.0:标记化&;拜特西奥_Python_Io_Tokenize_Bytesio - Fatal编程技术网

Python3.0:标记化&;拜特西奥

Python3.0:标记化&;拜特西奥,python,io,tokenize,bytesio,Python,Io,Tokenize,Bytesio,在python3.0中尝试tokenize字符串时,为什么要在标记开始之前获得一个前导的'utf-8' 从中,tokenize现在应按如下方式使用: g = tokenize(BytesIO(s.encode('utf-8')).readline) 但是,在终端尝试此操作时,会发生以下情况: >>> from tokenize import tokenize >>> from io import BytesIO >>> g = tokeni

在python3.0中尝试
tokenize
字符串时,为什么要在标记开始之前获得一个前导的
'utf-8'

从中,
tokenize
现在应按如下方式使用:

g = tokenize(BytesIO(s.encode('utf-8')).readline)
但是,在终端尝试此操作时,会发生以下情况:

>>> from tokenize import tokenize
>>> from io import BytesIO
>>> g = tokenize(BytesIO('foo'.encode()).readline)
>>> next(g)
(57, 'utf-8', (0, 0), (0, 0), '')
>>> next(g)
(1, 'foo', (1, 0), (1, 3), 'foo')
>>> next(g)
(0, '', (2, 0), (2, 0), '')
>>> next(g)
先于其他标记的
utf-8
标记有什么作用?这应该发生吗?如果是这样,那么我是否应该总是跳过第一个令牌

[编辑]
我发现令牌类型57是,如果需要,可以很容易地从令牌流中筛选出来。

这是源代码的编码cookie。您可以显式指定一个:

# -*- coding: utf-8 -*-
do_it()
否则Python将采用默认编码,即Python 3中的utf-8