我正在跟踪一个教程,试图了解此处发生的情况。因此,我们首先将“消息”编码为字节,然后取其长度,然后将其向左对齐(?)10,然后对整个内容进行编码?
我正尝试在无法理解f字符串的设备中使用此部分,因此我需要以.format()
的方式对其进行格式化,但无法弄清楚该怎么做。
HEADER_LENGTH = 10
message = 'this is test message'
message = message.encode('utf-8')
message_header = f"{len(message):<{HEADER_LENGTH}}".encode('utf-8')
答案 0 :(得分:4)
如果目标位于Python 3.6之前,则可以“降级”为format
风格
message_header = "{ml:<{hl}}".format(ml=len(message),hl=HEADER_LENGTH).encode('utf-8')
format
支持嵌套,因此适应很容易。只需在format
参数中移动求值变量并使用关键字,所以占位比位置(或空括号)样式更容易。
上面的左边使用HEADER_LENGTH
的长度将消息(以字符串的形式)的长度对齐到右空格,并带有空格。
答案 1 :(得分:-1)
运行代码后,它不是字符串,message
和message_header
都是utf-8编码的字符串。