def to_bytes(data): #data为字符串 b = bytearray() #使用bytearray存储转换结果 end_length = len(data) % 8 #获取最后不足8位的长度 for i in range(0, len(data) - end_length, 8): b.append(int(data[i:i + 8], 2)) #通过附加参数‘2’使用int函数处理8位字符串 b.append(int(data[len(data) - end_length:len(data)], 2)) #写入最后不足8位的二进制 b.append(int(bin(end_length), 2)) #写入最后字节有效二进制的长度 return bytes(b) #返回bytearray
1
2
3
4
5
6
7
8
def to_bytes ( data ) : #data为字符串
b = bytearray ( ) #使用bytearray存储转换结果
end_length = len ( data ) % 8 #获取最后不足8位的长度
for i in range ( 0 , len ( data ) - end_length , 8 ) :
b . append ( int ( data [ i : i + 8 ] , 2 ) ) #通过附加参数‘2’使用int函数处理8位字符串
b . append ( int ( data [ len ( data ) - end_length : len ( data ) ] , 2 ) ) #写入最后不足8位的二进制
b . append ( int ( bin ( end_length ) , 2 ) ) #写入最后字节有效二进制的长度
return bytes ( b ) #返回bytearray
bin_file = open(bin_file_name, mode='rb') bin_str=bin_file.read() word_bin = format(int.from_bytes(bin_str, byteorder='big', signed=False), '#0' + str(len(bin_str) * 8 + 2) + 'b')[2:] end_length_bin = word_bin[len(word_bin) - 8:len(word_bin)] end_length = int(end_length_bin, 2) word_bin = word_bin[0:-8] word_bin = word_bin[0:-8] + word_bin[len(word_bin) -end_length:len(word_bin)]
1
2
3
4
5
6
7
8
bin_file = open ( bin_file_name , mode = 'rb' )
bin_str = bin_file . read ( )
word_bin = format ( int . from_bytes ( bin_str , byteorder = 'big' , signed = False ) ,
'#0' + str ( len ( bin_str ) * 8 + 2 ) + 'b' ) [ 2 : ]
end_length_bin = word_bin [ len ( word_bin ) - 8 : len ( word_bin ) ]
end_length = int ( end_length_bin , 2 )
word_bin = word_bin [ 0 : - 8 ]
word_bin = word_bin [ 0 : - 8 ] + word_bin [ len ( word_bin ) - end_length : len ( word_bin ) ]