Форум сайта python.su
0
Здравствуйте, я еще совсем начинающий, подскажите, пожалуйста, не могу найти решение.
Мне необходимо открыть обычный файл 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
Офлайн
253
JunПочему не можете найти? Вы его нашли в первом случае. Все отлично, так и должно быть.
не могу найти решение.
Отредактировано doza_and (Фев. 14, 2021 21:21:53)
Офлайн
0
Да, действительно прочитать, спасибо, что поправили, я не правильно выразился, а как можно этот набор байт вывести через print() ?
Офлайн
186
> Мне необходимо открыть обычный файл txt в двоичном виде 1010
Может тебе текст в биты преобразовать надо? Это как то так делается
>>> txt = "привет" >>> list(map(bin,map(ord, txt))) ['0b10000111111', '0b10001000000', '0b10000111000', '0b10000110010', '0b10000110101', '0b10001000010']
Отредактировано Rodegast (Фев. 15, 2021 10:20:14)
Офлайн
0
RodegastНет, не текст в биты то есть не содержимое файла, а сам файл преобразовать в биты.
Может тебе текст в биты преобразовать надо?
Офлайн
1
Получше объясните что, вы хотите, чтобы далекий от вашей задачи человек сразу понял.
МОжет, как в картинке?
Прикреплённый файлы:
bintxt.png (7,8 KБ)
Офлайн
568
Junа как вы себе представляете файл, который не является набором бит? Все что есть не диске, все что хранится в памяти может быть только битами. Разница между бинарными и текстовыми данными кроется только в их интерпретации. То есть один и тот же файл является и текстом и бинарником одновременно, а как вы эти данные будете читать и что с ними делать - это зависит от вас, хотите читаете как текст, хотите как байты. В питоне вы выбираете формат в функции open. Посмотрите её документацию, там всё написано.
Нет, не текст в биты то есть не содержимое файла, а сам файл преобразовать в биты.
Офлайн
0
FishHookНаоборот, я его представляю как область данных на носителе, у этой области есть начало и есть конец и от начала до конца, это набор битов. Мне просто нужно получить всю эту последовательность битов и вывести на экран.
а как вы себе представляете файл, который не является набором бит?
Офлайн
186
> Мне просто нужно получить всю эту последовательность битов и вывести на экран.
Вот так?
>>> 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)
Офлайн
253
JunНу это не совсем так. Конечно границу между элементами файловой системы и файлами довольно трудно провести. Но обычно принято говорить что у файла есть имя, время создания время модификации, признаки разрешений доступа в ntfs есть произвольное число каналов записи. Когда файл открыли то у него есть позиции чтения записи. Атрибуты безопасности. Флаги признаков для разделяемого доступа, для отображения файла на память. Буфера операционной системы буфер устройства ввода вывода, raid контроллеры, контроллер переназначения секторов и т.п. и .т.д. А в Unix системах очень многие физические устройства имеют интерфейс как у файлов….
Наоборот, я его представляю как область данных на носителе
Офлайн