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
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)]
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
)
]