答1:
要将字符串转换为Python 2或Python
3中的字节序列,请使用字符串的
enpre方法。如果您不提供编码参数
'ascii',则该参数对于数字总是足够的。
s = str(n).enpre()
- Python 2:http://ideone.com/Y05zVY
- Python 3:http://ideone.com/XqFyOj
在Python
2中
str(n)已经产生了字节;该
enpre会是一个双转换与此字符串隐式转换为Unipre,然后再返回到字节。这是不必要的工作,但它无害且与Python
3完全兼容。
答案2:
上面是对实际提出的问题的答案,该问题是生成人类可读形式的ASCII字节字符串。但是由于人们不断来这里试图获得 另一个
问题的答案,所以我也会回答这个问题。如果您想转换
10以
b'10'使用上面的答案,但是如果您想转换
10以
b'x0ax00x00x00'继续阅读。
该
struct模块专门用于在各种类型及其二进制表示形式(字节序列)之间进行转换。从类型到字节的转换是通过完成的
struct.pack。有一个format参数
fmt确定应执行的转换。对于4字节整数,它将
i用于有符号数或
I无符号数。有关更多可能性,请参见格式字符表,如果输出大于单个字节,请参见字节顺序,大小和对齐表以获取选项。
import structs = struct.pack('<i', 5) # b'x05x00x00x00'


