Python 将二进制字符串数据写入文件出现了16进制的0D 数字 5
我有一串很长的二进制的字符串,现在要将这个转换成二进制数字写入到文件:字符串为:data_string=‘00001010000101001011110111001010...
我有一串很长的二进制的字符串,现在要将这个转换成二进制数字写入到文件:
字符串为:data_string=‘00001010000101001011110111001010......’
代码为:
但是这个data_string有长度限制,不能一次性写入很多的二进制数据,有没有什么简单方法一次性将这些二进制数据写入到文件
ee2=int(data_string,2)
parsedata_id2 = struct.pack(">L",ee2)
file_data.write(parsedata_id2)
标题写错了,问题是如何一次性将很长的二进制字符串转换成二进制数据写入到文件 展开
字符串为:data_string=‘00001010000101001011110111001010......’
代码为:
但是这个data_string有长度限制,不能一次性写入很多的二进制数据,有没有什么简单方法一次性将这些二进制数据写入到文件
ee2=int(data_string,2)
parsedata_id2 = struct.pack(">L",ee2)
file_data.write(parsedata_id2)
标题写错了,问题是如何一次性将很长的二进制字符串转换成二进制数据写入到文件 展开
2个回答
展开全部
如果不能一次性写入,那就分块。
假设data_string 最大长度为MAX_LENGTH ,则只需要将你需要写入的二进制字符串分块,每块大小为MAX_LENGTH,然后循环写入,即可。
假设data_string 最大长度为MAX_LENGTH ,则只需要将你需要写入的二进制字符串分块,每块大小为MAX_LENGTH,然后循环写入,即可。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
conv 函数要求 data_string 长度一定是8的倍数(每8个bit组成一个byte)。用 conv 得到的数据就可以直接写入文件了(open 文件时按照二进制打开)。
def conv(data):
assert (len(data) % 8) == 0, "Invalid binary string data"
fmt = ">{}B".format(len(data) / 8)
bytes = [int(data[x:x+8],2) for x in range(0, len(data), 8)]
return struct.pack(fmt, *bytes)
# test:
>>> conv("000101010101010100001000010011110000001100001101")
'\x15U\x08O\x03\r'
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询