You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将BitArray转换为二进制时遇ValueError错误求助

解决BitArray转二进制时的ValueError问题

你的错误根源有两个:

  • 打印BitArray时输出的是带省略号的十六进制摘要(因为文件内容过长),str(b)会包含...,这不是合法的十六进制字符,导致int()解析失败。
  • 完全没必要绕“BitArray→十六进制字符串→整数→二进制字符串”的弯路,BitArray本身就提供了直接获取二进制表示的方法。

正确实现代码

from bitarray import bitarray

# 用with语句管理文件句柄,避免资源泄漏
with open('test.png', 'rb') as f:
    b = bitarray()
    b.frombytes(f.read())

# 获取纯二进制字符串(不带0b前缀)
binary_content = b.bin
print(binary_content)

额外说明

  • 如果需要带0b前缀的二进制格式,直接拼接即可:f"0b{binary_content}"
  • 不要用str(b)处理BitArray对象,它的字符串表示是给人看的摘要,不是用于程序解析的格式。

内容的提问来源于stack exchange,提问作者Pedro Carvalho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 20:15:33