Найти - Пользователи
Полная версия: Открытие файла в бинарном виде.
Начало » Python для новичков » Открытие файла в бинарном виде.
1
roggerg
В книге М. Лутца (Изучаем Python 4 изд. глава 4 файлы стр.146
открытие файла в бинарном виде происходит так
 
data = open('data.bin', 'rb').read()

у меня в этом месте происходит ошибка
Вопрос что я делаю не так
d=open('data.bin', "rb").read()
Traceback (most recent call last):
  File "<pyshell#23>", line 1, in <module>
    d=open('data.bin', "rb").read()
FileNotFoundError: [Errno 2] No such file or directory: 'data.bin'
Egor2010
roggerg
В книге М. Лутца (Изучаем Python 4 изд. глава 4 файлы стр.146открытие файла в бинарном виде происходит так
Не существует фаила “data.bin”
roggerg
Хорошо, я его создал
d=open('data.bin', "rb").read()
>>> d
b'Hello world'
>>> 

бинарного вида не получил
TroSer
А что такое по-вашему
b'Hello world'
?

запустите
for elem in d:
	print(elem)
roggerg
что то я немного запуталься вот целиком пример из книги с коментариями
data = open('data.bin', 'rb').read() # Файл открывается в двоичном режиме
data   # Строка байтов хранит двочные данные
b'\x00\x00\x00\x07spam\x00\x08'
data[4:8]
b'spam'

мне не понятно как получилось эта строка
b'\x00\x00\x00\x07spam\x00\x08'

в моем представлении бинарный и двоичный это одно и тоже поэтом и результат должен быть в виде 0 и 1

Этот пример находится на стр 146 М.Лунца
sander
roggerg
что такое бинарный файл
py.user.next
roggerg
в моем представлении бинарный и двоичный это одно и тоже поэтом и результат должен быть в виде 0 и 1
Бинарный файл - это последовательность байт. Каждый байт - это число от 0 до 255, то есть бинарный файл - это последовательность чисел. А числа хранятся в двоичном виде как в постоянной памяти, так и в оперативной.

А текстовый файл - это последовательность символов. Каждый символ - это последовательность из одного или нескольких байт.

Вот как выглядит один и тот же набор символов в виде разных последовательностей байт:
>>> 'абв'
'абв'
>>> 
>>> 'абв'.encode('utf-8')
b'\xd0\xb0\xd0\xb1\xd0\xb2'
>>> 
>>> 'абв'.encode('cp1251')
b'\xe0\xe1\xe2'
>>>
>>> 'абв'.encode('koi8-r')
b'\xc1\xc2\xd7'
>>> 
>>> 'абв'.encode('utf-32')
b'\xff\xfe\x00\x000\x04\x00\x001\x04\x00\x002\x04\x00\x00'
>>>
roggerg
спасибо
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