在python中如何将字符串与二进制值连接起来?

在python中如何将字符串与二进制值连接起来?,python,string,binary,concatenation,Python,String,Binary,Concatenation,python中连接字符串和二进制值的最简单方法是什么 sep = 0x1 data = ["abc","def","ghi","jkl"] 查找结果数据“abc0xdef0x1ghi0x1jkl”,0x1是二进制值,而不是字符串“0x1”。我认为 joined = '\x01'.join(data) 我应该这样做\x01是值为0x01的字节的转义序列。chr()函数的作用是将变量转换为具有您要查找的二进制值的字符串 >>> sep = 0x1 >>> s

python中连接字符串和二进制值的最简单方法是什么

sep = 0x1
data = ["abc","def","ghi","jkl"]
查找结果数据“abc0xdef0x1ghi0x1jkl”,0x1是二进制值,而不是字符串“0x1”。

我认为

joined = '\x01'.join(data) 
我应该这样做
\x01
是值为0x01的字节的转义序列。

chr()函数的作用是将变量转换为具有您要查找的二进制值的字符串

>>> sep = 0x1
>>> sepc = chr(sep)
>>> sepc
'\x01'
然后,可以使用join()函数将二进制值作为分隔符连接一系列字符串

>>> data = ['abc']*3
>>> data
['abc', 'abc', 'abc']
>>> sepc.join(data)
'abc\x01abc\x01abc'

我知道这不是最好的方法,但对于同一个问题,另一种在不同背景下可能有用的方法是:

>>> x=(str(bin(0b110011000)))
>>> b=(str(bin(0b11111111111)))
>>> print(x+b)
0b1100110000b11111111111
如果需要,要删除每个字符串最左边的两位(即0b焊盘),值为2的切片函数
[2://code>可以工作:

>>> x=(str(bin(0b110011000)[2:]))
>>> b=(str(bin(0b11111111111)[2:]))
>>> print(x+b)
11001100011111111111

+1非常感谢,我尝试过类似的方法,但没有考虑过通过转义字符来创建“字符”…效果很好:8=10^A9=ABC^A10=BBB^A34=D@pdc:这是带有mmap的。@ricree:这是带有mmap的。没有二进制值。0x1为十六进制;0b1将是二进制的。