将字节转换为二进制字符串的简单方法是什么?

我需要将文件中的字节转换为1和0的字符串,

file = open("Some_File.jpg","rb")
data = file.read()
file.close()
binary = some_function(data)
print(binary)
>>> 0100101000010101001...

我已经设法通过先将字节转换为Base64来获得等效的内容,但是这会使字符串的长度非常长。我看过的其他问题是关于将二进制字符串转换为 个字节,但我找不到相反的东西。

该问题被标记为与另一个问题重复,但是该问题正在将字符串转换为二进制。如果我想这样做,我只是将其转换为Base64,但是它太长了。我需要一种将字节直接“ 1”和“ 0”的字符串的方法

mingtianwen 回答:将字节转换为二进制字符串的简单方法是什么?

基于评论中的讨论,我不相信您要问的是您实际上想做什么。但是,假设您要将python字节字符串转换为文字的零和一的字符串,这是一种实现方法:

import itertools

def bytes_to_bits(bytes_to_print: bytes):
    bits = [
        ["1" if byte & 2 ** i else "0" for i in range(7,-1,-1)]
        for byte in bytes_to_print
    ]
    return ''.join(itertools.chain.from_iterable(bits))


if __name__ == "__main__":
    print(bytes_to_bits(b"ABC"))
本文链接:https://www.f2er.com/3125225.html

大家都在问