python2和python3的兼容python文本
我用python 3编写python2和python3的兼容python文本,python,Python,我用python 3编写 s = '\u0300' 我得到一个unicode字符,但在python2中不起作用,我得到一个由各种字符组成的字符串 python2似乎想要: s = u'\u0300' 因此,我必须检查sys.version\u info,以了解我是在运行Python2还是3,并相应地使用前者还是后者 有没有一种方法可以在两个版本中都使用?Python3(从3.3 IIRC开始)支持u''string文本。或者你可以使用 from __future__ import unico
s = '\u0300'
我得到一个unicode字符,但在python2中不起作用,我得到一个由各种字符组成的字符串
python2似乎想要:
s = u'\u0300'
因此,我必须检查sys.version\u info,以了解我是在运行Python2还是3,并相应地使用前者还是后者
有没有一种方法可以在两个版本中都使用?Python3(从3.3 IIRC开始)支持u''
string文本。或者你可以使用
from __future__ import unicode_literals
在Python2中获取与Python3兼容的字符串文本。此语句在Python 3中不可用。最兼容的方法是使用
six
模块或类似的兼容垫片:
import six
s = six.u('\u0300')
six
可在PyPI上获得,并且得到了极其广泛的使用和良好的测试
另一种选择是:
from __future__ import unicode_literals
s = '\u0300'
但是,这可能与Python2的许多期望相冲突,即字符串项可以包含字节。当unicode\u literals
打开时,字符串文本将被静默地、几乎神奇地升级为unicode字符串。Python文化通常倾向于显式而非隐式。来自未来的导入unicode文本(需要编辑)