Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 15, 2021 21:42:22

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Открыть txt файл в бинарном виде.

doza_and
При помощи простого open вы не доберетесь до физической поверхности диска, с его головками дорожками секторами…
а шо open('/dev/sda','rb') из под рута уже не работает(в венде от админа ‘\\.\PhysicalDriveN’)?
Только что проверил, все работает. Это не дорожки-сектора, но вполне себе сырые данные. Можно MBR, например, считать (или запороть )



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Фев. 15, 2021 21:48:46)

Офлайн

#2 Фев. 15, 2021 22:56:18

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1395
Репутация: +  124  -
Профиль   Отправить e-mail  

Открыть txt файл в бинарном виде.

Jun
у этой области есть начало и есть конец и от начала до конца, это набор битов.
откройте свой текстовый файл в Hex редакторе и посмотрите на эту область,где от начала до конца будет текст в шестнадцатеричном виде,можно отобразить в 0 и 1.На сколько я понимаю,данные которые записываются при записи этого файла на жесткий диск или на флешку,где указываются имя,характеристики файла,разрешения,какие-нибудь координаты,где располагается область непосредственно с данными.находится не в той же области.Это как в книге есть оглавление в начале,а есть сам текст,на некой странице.Поправьте,если чего не так говорю

Офлайн

#3 Фев. 16, 2021 13:31:48

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Открыть txt файл в бинарном виде.

xam1816
Это как в книге есть оглавление в начале,а есть сам текст,на некой странице.Поправьте,если чего не так говорю
Если в целом и общем то да, хотя бывают исключения и вобщем все зависит от реализации конкретной ФС. например в NTFS можно иметь файл нулевой длинны(и в НЕХ редакторе вы увидите что файл пустой), при стирании которого освободится 1 Гбайт свободного места. Потомучто стандартными средствами можно увидеть только основной текст поток, а гигабайт ктоото запихнул в дополнительный, а доп. потоки из “оглавления” не видно.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Фев. 16, 2021 13:33:24)

Офлайн

#4 Фев. 17, 2021 00:22:30

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

Открыть txt файл в бинарном виде.

Генератор для преобразования потока байтов в поток битов.

  
>>> def to_bits(seq):
...     for byte in seq:
...         for i in range(1, 8 + 1):
...             yield (byte >> (8 - i)) & 1
... 
>>> list(to_bits(b'abcde'))
[0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1]
>>>
Дальше в него подаёшь то, что из файла прочитал в бинарном режиме.



Отредактировано py.user.next (Фев. 17, 2021 00:25:37)

Офлайн

#5 Фев. 17, 2021 20:16:17

Jun
Зарегистрирован: 2021-02-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Открыть txt файл в бинарном виде.

Rodegast
Вот так?
Если это весь файл целиком, то да, то есть что бы можно было взять этот набор бит, перенести его на другой ПК и собрать из него обратно тот же файл.

doza_and
Буфера операционной системы буфер устройства ввода вывода, raid контроллеры, контроллер переназначения секторов и т.п. и .т.д.
Здесь, наверное, нет необходимости так глубоко погружаться, может быть действительно, мы можем просто получить доступ к файлу так как это делает Hex редактор?

xam1816
можно отобразить в 0 и 1
Как мы могли бы сами реализовать подобное, прочить эти биты все целиком как в Hex редакторе, в любом виде например в шестнадцатеричном и преобразовать их в 01?

Офлайн

#6 Фев. 17, 2021 23:13:57

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1395
Репутация: +  124  -
Профиль   Отправить e-mail  

Открыть txt файл в бинарном виде.

Jun
Как мы могли бы сами реализовать подобное, прочить эти биты все целиком как в Hex редакторе, в любом виде например в шестнадцатеричном и преобразовать их в 01?

 def text_bin(text):
	s = ''.join(format(ord(c), '016b') for c in text)
	return s
def bin_text(bin_str):
	chars_bin = wrap(bin_str, 16)
	chars_dec = [int(s,2) for s in chars_bin]
	s = ''.join(map(chr, chars_dec))
	return s
s1 = text_bin("привет")
print(s1)
s2 = bin_text(s1)
print(s2)

вывод
 000001000011111100000100010000000000010000111000000001000011001000000100001101010000010001000010
привет
Process finished with exit code 0

по 16 символов чтобы русские буквы влазили

Офлайн

#7 Фев. 20, 2021 23:10:12

Jun
Зарегистрирован: 2021-02-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Открыть txt файл в бинарном виде.

xam1816
по 16 символов чтобы русские буквы влазили
Спасибо большое за пример и объяснения.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version