Найти - Пользователи
Полная версия: Открыть txt файл в бинарном виде.
Начало » Python для новичков » Открыть txt файл в бинарном виде.
1 2
Jun
Здравствуйте, я еще совсем начинающий, подскажите, пожалуйста, не могу найти решение.
Мне необходимо открыть обычный файл 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
doza_and
Jun
не могу найти решение.
Почему не можете найти? Вы его нашли в первом случае. Все отлично, так и должно быть.
Может вы хотите его прочитать а не открыть?
После того как вы файл открыли, можно делать разные вещи, читать писать перемещаться в разные места файла. Поэтому открыть и прочитать это не одно и тоже.
Jun
Да, действительно прочитать, спасибо, что поправили, я не правильно выразился, а как можно этот набор байт вывести через print() ?
Rodegast
> Мне необходимо открыть обычный файл txt в двоичном виде 1010

Может тебе текст в биты преобразовать надо? Это как то так делается
 >>> txt = "привет"
>>> list(map(bin,map(ord, txt)))
['0b10000111111', '0b10001000000', '0b10000111000', '0b10000110010', '0b10000110101', '0b10001000010']
Jun
Rodegast
Может тебе текст в биты преобразовать надо?
Нет, не текст в биты то есть не содержимое файла, а сам файл преобразовать в биты.
rumactep
Получше объясните что, вы хотите, чтобы далекий от вашей задачи человек сразу понял.
МОжет, как в картинке?
FishHook
Jun
Нет, не текст в биты то есть не содержимое файла, а сам файл преобразовать в биты.
а как вы себе представляете файл, который не является набором бит? Все что есть не диске, все что хранится в памяти может быть только битами. Разница между бинарными и текстовыми данными кроется только в их интерпретации. То есть один и тот же файл является и текстом и бинарником одновременно, а как вы эти данные будете читать и что с ними делать - это зависит от вас, хотите читаете как текст, хотите как байты. В питоне вы выбираете формат в функции open. Посмотрите её документацию, там всё написано.
Jun
FishHook
а как вы себе представляете файл, который не является набором бит?
Наоборот, я его представляю как область данных на носителе, у этой области есть начало и есть конец и от начала до конца, это набор битов. Мне просто нужно получить всю эту последовательность битов и вывести на экран.
Rodegast
> Мне просто нужно получить всю эту последовательность битов и вывести на экран.

Вот так?
 >>> 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'
doza_and
Jun
Наоборот, я его представляю как область данных на носителе
Ну это не совсем так. Конечно границу между элементами файловой системы и файлами довольно трудно провести. Но обычно принято говорить что у файла есть имя, время создания время модификации, признаки разрешений доступа в ntfs есть произвольное число каналов записи. Когда файл открыли то у него есть позиции чтения записи. Атрибуты безопасности. Флаги признаков для разделяемого доступа, для отображения файла на память. Буфера операционной системы буфер устройства ввода вывода, raid контроллеры, контроллер переназначения секторов и т.п. и .т.д. А в Unix системах очень многие физические устройства имеют интерфейс как у файлов….

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

При помощи простого open вы не доберетесь до физической поверхности диска, с его головками дорожками секторами…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB