как получить двоичный файл (1010) из файла - PullRequest
0 голосов
/ 15 октября 2018

Мне нужно получить чистый двоичный файл.Из чистого двоичного кода я имею в виду

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 голосов
/ 15 октября 2018

Итак, это на самом деле то же самое.Символ формы \xa7 - это то, что читатели файлов понимают как 10100111.

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

Если вы хотите двоичное представление, особенно как 0 s и 1 s,вы можете использовать что-то похожее на то, что я использовал выше, чтобы получить его, но любая программа, ожидающая двоичный код, должна работать с реальными двоичными символами, которые будут выглядеть как \xa7 или что-то еще при выводе на экран через python.

0 голосов
/ 15 октября 2018
with open('img.jpg', 'rb') as file:
    print("".join(bin(b)[2:] for b in file.read()))

Зачем вам это нужно, я не знаю, поскольку компьютеры работают за 1 с и 0 с, а не "1" с и "0" с, и обычно при представлении двоичных файлов людям выиспользуйте oct al или hex idecimal.

...