Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 14, 2021 20:29:40

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

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

Здравствуйте, я еще совсем начинающий, подскажите, пожалуйста, не могу найти решение.
Мне необходимо открыть обычный файл txt в двоичном виде 1010, в поисковиках утверждают текстовый файл невозможно сразу открыть в двоичном виде. Для этого я использую функцию open и параметры.
Первый вариант
i = open (“text.txt”, “rb”)
print(i)

получаю ответ
<_io.BufferedReader name='text.txt'>
Process finished with exit code 0

Второй вариант
i = open(“text.txt”, “rb”, “buffering=30”)
print(i)
Получаю ответ
Traceback (most recent call last):
File “C:\Users\Username\PycharmProjects\pythonProject\test.py”, line 1, in <module>
i = open(“text.txt”, “rb”, “buffering=30”)
TypeError: an integer is required (got type str)

Process finished with exit code 1

Офлайн

#2 Фев. 14, 2021 21:21:18

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

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

Jun
не могу найти решение.
Почему не можете найти? Вы его нашли в первом случае. Все отлично, так и должно быть.
Может вы хотите его прочитать а не открыть?
После того как вы файл открыли, можно делать разные вещи, читать писать перемещаться в разные места файла. Поэтому открыть и прочитать это не одно и тоже.



Отредактировано doza_and (Фев. 14, 2021 21:21:53)

Офлайн

#3 Фев. 15, 2021 09:12:12

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

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

Да, действительно прочитать, спасибо, что поправили, я не правильно выразился, а как можно этот набор байт вывести через print() ?

Офлайн

#4 Фев. 15, 2021 10:19:05

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2849
Репутация: +  186  -
Профиль   Отправить e-mail  

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

> Мне необходимо открыть обычный файл txt в двоичном виде 1010

Может тебе текст в биты преобразовать надо? Это как то так делается

 >>> txt = "привет"
>>> list(map(bin,map(ord, txt)))
['0b10000111111', '0b10001000000', '0b10000111000', '0b10000110010', '0b10000110101', '0b10001000010']



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Фев. 15, 2021 10:20:14)

Офлайн

#5 Фев. 15, 2021 10:34:12

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

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

Rodegast
Может тебе текст в биты преобразовать надо?
Нет, не текст в биты то есть не содержимое файла, а сам файл преобразовать в биты.

Офлайн

#6 Фев. 15, 2021 10:47:31

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

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

Получше объясните что, вы хотите, чтобы далекий от вашей задачи человек сразу понял.
МОжет, как в картинке?

Прикреплённый файлы:
attachment bintxt.png (7,8 KБ)

Офлайн

#7 Фев. 15, 2021 11:05:54

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

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

Jun
Нет, не текст в биты то есть не содержимое файла, а сам файл преобразовать в биты.
а как вы себе представляете файл, который не является набором бит? Все что есть не диске, все что хранится в памяти может быть только битами. Разница между бинарными и текстовыми данными кроется только в их интерпретации. То есть один и тот же файл является и текстом и бинарником одновременно, а как вы эти данные будете читать и что с ними делать - это зависит от вас, хотите читаете как текст, хотите как байты. В питоне вы выбираете формат в функции open. Посмотрите её документацию, там всё написано.



Офлайн

#8 Фев. 15, 2021 18:51:22

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

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

FishHook
а как вы себе представляете файл, который не является набором бит?
Наоборот, я его представляю как область данных на носителе, у этой области есть начало и есть конец и от начала до конца, это набор битов. Мне просто нужно получить всю эту последовательность битов и вывести на экран.

Офлайн

#9 Фев. 15, 2021 19:12:20

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2849
Репутация: +  186  -
Профиль   Отправить e-mail  

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

> Мне просто нужно получить всю эту последовательность битов и вывести на экран.

Вот так?

 >>> data = open("/home/rodegast/pifagor.hs", "rb")
>>> " ".join(map(hex,list(data.read())))
'0xa 0x6d 0x61 0x69 0x6e 0x20 0x3d 0x20 0x70 0x75 0x74 0x53 0x74 0x72 0x4c 0x6e 0x20 0x28 0x63 0x6f 0x6e 0x63 0x61 0x74 0x20 0x5b 0x20 0x63 0x6f 0x6e 0x63 0x61 0x74 0x20 0x5b 0x20 0x73 0x68 0x6f 0x77 0x28 0x78 0x2a 0x79 0x29 0x20 0x2b 0x2b 0x20 0x22 0x5c 0x74 0x22 0x20 0x7c 0x20 0x79 0x20 0x3c 0x2d 0x20 0x5b 0x31 0x2e 0x2e 0x31 0x30 0x5d 0x20 0x5d 0x20 0x2b 0x2b 0x20 0x22 0x5c 0x6e 0x22 0x20 0x7c 0x20 0x78 0x20 0x3c 0x2d 0x20 0x5b 0x31 0x2e 0x2e 0x31 0x30 0x5d 0x20 0x5d 0x29 0xa'



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Фев. 15, 2021 19:30:43)

Офлайн

#10 Фев. 15, 2021 21:33:36

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

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

Jun
Наоборот, я его представляю как область данных на носителе
Ну это не совсем так. Конечно границу между элементами файловой системы и файлами довольно трудно провести. Но обычно принято говорить что у файла есть имя, время создания время модификации, признаки разрешений доступа в ntfs есть произвольное число каналов записи. Когда файл открыли то у него есть позиции чтения записи. Атрибуты безопасности. Флаги признаков для разделяемого доступа, для отображения файла на память. Буфера операционной системы буфер устройства ввода вывода, raid контроллеры, контроллер переназначения секторов и т.п. и .т.д. А в Unix системах очень многие физические устройства имеют интерфейс как у файлов….

Когда вы работаете из питона с файлами то вы взаимодействуете со всей этой машинерией.

При помощи простого open вы не доберетесь до физической поверхности диска, с его головками дорожками секторами…



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version