Форум сайта python.su
294
doza_andа шо open('/dev/sda','rb') из под рута уже не работает(в венде от админа ‘\\.\PhysicalDriveN’)?
При помощи простого open вы не доберетесь до физической поверхности диска, с его головками дорожками секторами…
)
[code python][/code]
Отредактировано PEHDOM (Фев. 15, 2021 21:48:46)
Офлайн
124
Junоткройте свой текстовый файл в Hex редакторе и посмотрите на эту область,где от начала до конца будет текст в шестнадцатеричном виде,можно отобразить в 0 и 1.На сколько я понимаю,данные которые записываются при записи этого файла на жесткий диск или на флешку,где указываются имя,характеристики файла,разрешения,какие-нибудь координаты,где располагается область непосредственно с данными.находится не в той же области.Это как в книге есть оглавление в начале,а есть сам текст,на некой странице.Поправьте,если чего не так говорю
у этой области есть начало и есть конец и от начала до конца, это набор битов.
Офлайн
294
xam1816Если в целом и общем то да, хотя бывают исключения и вобщем все зависит от реализации конкретной ФС. например в NTFS можно иметь файл нулевой длинны(и в НЕХ редакторе вы увидите что файл пустой), при стирании которого освободится 1 Гбайт свободного места. Потомучто стандартными средствами можно увидеть только основной
Это как в книге есть оглавление в начале,а есть сам текст,на некой странице.Поправьте,если чего не так говорю
[code python][/code]
Отредактировано PEHDOM (Фев. 16, 2021 13:33:24)
Офлайн
857
Генератор для преобразования потока байтов в поток битов.
>>> 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)
Офлайн
0
RodegastЕсли это весь файл целиком, то да, то есть что бы можно было взять этот набор бит, перенести его на другой ПК и собрать из него обратно тот же файл.
Вот так?
doza_andЗдесь, наверное, нет необходимости так глубоко погружаться, может быть действительно, мы можем просто получить доступ к файлу так как это делает Hex редактор?
Буфера операционной системы буфер устройства ввода вывода, raid контроллеры, контроллер переназначения секторов и т.п. и .т.д.
xam1816Как мы могли бы сами реализовать подобное, прочить эти биты все целиком как в Hex редакторе, в любом виде например в шестнадцатеричном и преобразовать их в 01?
можно отобразить в 0 и 1
Офлайн
124
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
Офлайн
0
xam1816Спасибо большое за пример и объяснения.
по 16 символов чтобы русские буквы влазили
Офлайн