Mik*_* S. 5 python string byte python-3.x
假设我有一个小于100字节的字符串(如果重要的话是unicode)变量.我想创建另一个变量,其大小恰好为100字节,包含此字符串,并用零或其他填充.我如何在Python 3中完成它?
这样的事情应该有效:
st = "??"
by = bytes(st, "utf-8")
by += b"0" * (100 - len(by))
print(by)
# b'\xe5\x85\xb7\xe6\x9c\x890000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
Run Code Online (Sandbox Code Playgroud)
由于您的原始帖子似乎将字符串与其编码字节表示的长度混淆在一起的强制性附录:Python unicode解释
为了组装数据包通过网络,或组装字节完美的二进制文件,我建议使用该struct模块.
只是为了字符串,你可能不需要struct,但只要你开始打包二进制值,struct就会让你的生活更轻松.
根据您的需求,使用现成的网络序列化库(例如Protocol Buffers)可能会更好; 或者你甚至可以只使用JSON作为有线格式.