Найти - Пользователи
Полная версия: Чтение бинарного файла. Закончить цикл...
Начало » Центр помощи » Чтение бинарного файла. Закончить цикл...
1
sav
Читаем и обрабатываем файл в бинарном режиме. В файле текст “analizator…”
Задано чтение 16-и байтов, поэтому читаются лишние три нуля…
Два вопроса:
1. Как сделать по длине файла?
2. Как запустить в Python 2.7

Текст Python 3.5
f = open ('file_.txt','rb')
for i in range (16):
        d=int.from_bytes(f.read(1), byteorder='big')
        ''' алгоритм обработки '''
        print (hex(d), end=" ")
        print (chr(d))
f.close()

Результат выполнения
0x61 a
0x6e n
0x61 a
0x6c l
0x69 i
0x7a z
0x61 a
0x74 t
0x6f o
0x72 r
0x2e .
0x2e .
0x2e .
0x0
0x0
0x0
JOHN_16
sav
В бесконечном цикле while считывайте по 1 байту, когда вернет пустую строку - тогда файл закончился и выходите из цикла. Пробуйте
py.user.next
f.read(13)
sav

Попытка запустить в Python 2.7
f = open ('file_.txt','rb')
for i in range (16):
        d=int.from_bytes(f.read(1), byteorder='big')
        ''' алгоритм обработки '''
        print (chr(d))
f.close(
)
Traceback (most recent call last):
File “CDocuments and Settings/Администратор/Мои документы/Downloads/2015-09-05 17-25-33/exp.py”, line 3, in <module>
d=int.from_bytes(f.read(1), byteorder='big')
AttributeError: type object ‘int’ has no attribute ‘from_bytes’
Zula
sav
Попытка запустить в Python 2.7
https://docs.python.org/3/library/stdtypes.html#int.from_bytes
New in version 3.2.
sav
Спасибо, но ничего не помогает из этой ссылки…
Эти примеры не работает:
>>> int.from_bytes(b'\x00\x10', byteorder='big')
16
>>> int.from_bytes(b'\x00\x10', byteorder='little')
4096
>>> int.from_bytes(b'\xfc\x00', byteorder='big', signed=True)
-1024
>>> int.from_bytes(b'\xfc\x00', byteorder='big', signed=False)
64512
>>> int.from_bytes([255, 0, 0], byteorder='big')
16711680
У кого нибудь работает это?
JOHN_16
sav
Это из третьего Питона
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