如何获取文件的二进制文件(1010)

时间:2018-10-15 11:42:13

标签: python python-3.x binary data-conversion

我需要获取文件的纯二进制文件。从纯二进制的意思是

1010101010

我已经尝试过了:

with open('img.jpg', 'rb') as file:
    print(file.read())

这给了我下面的输出:

d2$I\xa7\xf3\x196\x8d\xc8\x9cmS\xc7Z{L\xd8r\x89\x85\x1f\xf2\xd3\x07\x8fjd\x90\xa6P\x03\xb0\x1e\xb5,n\xb0\xafo~\xf4\x

我不需要这个,因为我正在处理文件的二进制文件。相反,我需要

101011110101010110101000000001010101011111010000011010010101

2 个答案:

答案 0 :(得分:2)

with open('img.jpg', 'rb') as file:
    print("".join(bin(b)[2:] for b in file.read()))

为什么您需要这样做超出了我的范围,因为计算机可以在10而不是"1""0"中工作,并且通常在表示二进制文件时可以工作对于人类,您最好使用oct al或hex理想的人类。

答案 1 :(得分:0)

所以,这实际上是同一件事。文件阅读器将\xa7形式的字符理解为10100111

>>> bin(ord('\xa7')) # => 167

如果您想要二进制表示形式(特别是01),则可以使用与我上面使用的类似的东西来获取它,但是任何期望二进制的程序都可以使用实际的二进制字符,当通过python在屏幕上打印时,它们看起来像\xa7或其他字符。