比方说,我有一个小于 100 字节的字符串(Unicode,如果重要的话)变量。我想创建另一个大小正好为 100 字节的变量,其中包含此字符串并用零或其他内容填充。我将如何在 Python 3 中做到这一点?
原文由 Mikael S. 发布,翻译遵循 CC BY-SA 4.0 许可协议
比方说,我有一个小于 100 字节的字符串(Unicode,如果重要的话)变量。我想创建另一个大小正好为 100 字节的变量,其中包含此字符串并用零或其他内容填充。我将如何在 Python 3 中做到这一点?
原文由 Mikael S. 发布,翻译遵循 CC BY-SA 4.0 许可协议
这样的事情应该有效:
st = "具有"
by = bytes(st, "utf-8")
by += b"0" * (100 - len(by))
print(by)
# b'\xe5\x85\xb7\xe6\x9c\x890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
强制性附录,因为您的原始帖子似乎将字符串与其编码字节表示的长度混为一谈: Python unicode explanation
原文由 Daenyth 发布,翻译遵循 CC BY-SA 3.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
为了组装数据包通过网络,或组装字节完美的二进制文件,我建议使用
struct
模块。仅对于字符串,您可能不需要
struct
,但是一旦您开始打包二进制值,struct
将使您的生活变得更加轻松。根据您的需要,使用现成的网络序列化库可能会更好,例如 Protocol Buffers;或者您甚至可以只使用 JSON 作为有线格式。