如何在python中将二进制字符串当作bit直接写入二进制文件中

0 问题

如何在python中将二进制字符串当作bit直接写入二进制文件中

1 方法1

# 需保存的字符串
s = "01010101010101001010111001100110110"
# 首先需要保存原字符串长度
l = len(s)
# 首先将s变成的8的整数倍长的字符串 可以直接在后面填0
if r := l % 8:
    s += "0"*(8-r)
# 将s转成bytes
b = bytes([int(s[i:i+8], 2) for i in range(0, len(s), 8)])
# bytes 可以直接写入以二进制模式打开的文件
# 例如
with open("test.bin", "wb") as f:
    f.write(b)

# 为了能够从文件中得到完全一致的二进制字符串,需保留原始长度l
# 从文件中还原
with open("test.bin", "rb") as f:
    data = f.read()
    binstr = "".join(["{:08b}".format(c) for c in data])
    binstr = binstr[:l] # 此时的binstr为原来的二进制字符串
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值