我需要获取文件的纯二进制文件。从纯二进制的意思是
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
答案 0 :(得分:2)
with open('img.jpg', 'rb') as file:
print("".join(bin(b)[2:] for b in file.read()))
为什么您需要这样做超出了我的范围,因为计算机可以在1
和0
而不是"1"
和"0"
中工作,并且通常在表示二进制文件时可以工作对于人类,您最好使用oct
al或hex
理想的人类。
答案 1 :(得分:0)
所以,这实际上是同一件事。文件阅读器将\xa7
形式的字符理解为10100111
。
>>> bin(ord('\xa7')) # => 167
如果您想要二进制表示形式(特别是0
和1
),则可以使用与我上面使用的类似的东西来获取它,但是任何期望二进制的程序都可以使用实际的二进制字符,当通过python在屏幕上打印时,它们看起来像\xa7
或其他字符。