繁体   English   中英

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

[英]How do I turn a Python string stored in a variable into a byte sequence?

很简单,我知道,但文档并没有太大帮助。 我正在尝试哈希一个简单的字符串。 我正在遵循这个指南。 其中给出的例子是:

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

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

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

但这并不是很有效。 我该怎么做呢?

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM