在我的Java代码中,我有以下代码段:
String secret = "secret";
byte[] thebytes = secret.getBytes();
我希望在python中有完全相同的结果。我怎么能这样做?
secret = 'secret'
thebytes = ??? ??? ???
感谢。
编辑:
此外,拥有Python 2.x和3.x
的解决方案会很有趣答案 0 :(得分:8)
这并不像最初看起来那么简单,因为Python历史上混淆了字节数组和字符串。在Python 3中简短的回答是
secret = "secret"
secret.encode()
但是你应该阅读Python如何处理unicode,字符串和字节。
答案 1 :(得分:7)
在python-2.7中有bytearray()
:
>>> s = 'secret'
>>> b = bytearray(s)
>>> for i in b:
... print i
115
101
99
114
101
116
如果这是您正在寻找的。 p>
答案 2 :(得分:4)
我不确定完全是否相同,因为Python没有byte
,但这可能会起到作用:
bytes = [ord(c) for c in "secret"] # => [115, 101, 99, 114, 101, 116]
或者使用map
,正如katrielalex建议的那样,只是因为它很漂亮:
bytes = map(ord, "secret") # => [115, 101, 99, 114, 101, 116]