如何将存储在变量中的Python字符串转换为字节序列?

时间:2013-08-12 21:59:59

标签: python string

很简单,我知道,但文档不太有帮助。我正在尝试哈希一个简单的字符串。我正在关注this指南。其中给出的例子是:

import hashlib
hash_object = hashlib.md5(b'Hello World')
print(hash_object.hexdigest())

然后你有一个哈希表示法。假设我想更进一步。我有四个字符串要连接在一起,其结果需要转换为字节序列,以便传递给hashlib.md5()函数。但是,我很好奇我如何使用变量而不是硬编码字符串来复制b'Hello World'语法。文档似乎建议您可以将格式传递给内置的format函数,因此对于我的用例类似于:

my_string = '%s%s%s%s' % (first, second, third, fourth)
byte_string = format(my_string, 'b')
但是,这并不是很有效。我该怎么做?

2 个答案:

答案 0 :(得分:2)

Python中的字符串是一系列字符,用于将字符串转换为使用某些字符集对其进行编码的字节序列。例如:

my_string = '%s%s%s%s' % (first, second, third, fourth)
byte_string = my_string.encode('utf-8')

而不是my_string.encode('utf-8')您也可以使用bytes(my_string, 'utf-8'),这些是等效的。如果您愿意,也可以使用不同的编码,但UTF-8通常是一个不错的选择,因为它能够表示任何代码点(字符)并且相当紧凑,特别是对于ASCII数据。

答案 1 :(得分:1)

my_string = '%s%s%s' % (first, second, third, fourth)
byte_string = bytes(my_string)