我的函数需要将输入作为字符串或二进制数据(例如,从文件中读取)。如果它是一个字符串,我想将其转换为原始数据(bytes
or bytearray
).
在Python 3中,我可以做data = bytes(data, 'utf8')
。然而,这在 Python 2 中失败了,因为它只需要一个参数。反之亦然,data = bytes(data)
在 Python 2 中有效,但在 Python 3 中无效,因为它抱怨需要编码才能工作。
为了便于论证,我们假设所有输入(如果是字符串)都是 UTF-8 编码的。那么有没有比以下怪物更好的方法来实现我正在寻找的目标:
try:
data = bytes(data, 'utf8')
except:
data = bytes(data)
n.b., data.encode()
在 Py3 中可以工作,但如果字符串包含非 ASCII 字节,则在 Py2 中会失败。
这适用于两个版本。即 python 2 和 python 3
data = bytes(str(data).encode("utf-8"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)