python2和python3的兼容python文本

2024-09-30 16:22:17 发布

您现在位置:Python中文网/ 问答频道 /正文

在python3中我写

s = '\u0300'

我得到一个unicode字符,但在python2中不起作用,我得到一个由各种字符组成的字符串

Python2似乎想要:

s = u'\u0300'

所以我必须检查sys.version_info,以便知道我运行的是python2还是python3,并相应地使用前者还是后者

有没有一种方法可以在两种版本中都适用


Tags: 方法字符串版本infoversionsysunicode字符
2条回答

python3(从3.3iirc开始)支持u''字符串文本。或者你可以用

from __future__ import unicode_literals

在Python2中获取与Python3兼容的字符串文本。此语句在Python3中不起作用

最兼容的方法是使用six模块或类似的兼容性填充程序:

import six

s = six.u('\u0300')

six在PyPI上可用,并且被广泛地使用和测试

另一种选择是:

from __future__ import unicode_literals 

s = '\u0300'

但是,这可能与Python2的许多期望相冲突,即字符串项可以包含字节。当unicode_literals打开时,字符串文本将被静默地几乎神奇地升级为Unicode字符串。Python文化通常倾向于显式的而不是隐式的

相关问题 更多 >