karulyana
@karulyana
Начинающий питонист

Как написать цикл для прочтения всего файла по 8 байт на Pythone?

Есть определенный файл, там хранятся числа по 8 байт каждое, по строчно они не поделены.
Нужен цикл, не знаю как это сделать
цикл построчный выглядит так:
d = []
with open(file, 'rb') as f:
        for i in f.readlines():
        print(i)
        d.append(i)


Надо, что-то подобное только чтение не построчно, а по 8 байт
  • Вопрос задан
  • 283 просмотра
Решения вопроса 3
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
d = []
with open("file", "rb") as f:
    number = f.read(8)
    d.append(number)
    while number != "":
        number = f.read(8)
        d.append(number)
Ответ написан
sim3x
@sim3x
#
d = []
with open(file, 'r') as f:
    for i in f:
        print(i)
        d.append(i)


byte_count = 8
with open("myfile", "rb") as f:
    byte = f.read(byte_count)
    while byte != b"":
        # Do stuff with byte.

        byte = f.read(byte_count)


stackoverflow.com/questions/1035340/reading-binary...
Ответ написан
@abcd0x00
>>> def read_blocks(fname, block_size):
...     with open(fname, 'rb') as fin:
...         while True:
...             data = fin.read(block_size)
...             if data:
...                 yield data
...             else:
...                 break
... 
>>> out = read_blocks('/etc/passwd', 8)
>>> 
>>> list(out)[:5]
[b'root:x:0', b':0:root:', b'/root:/b', b'in/bash\n', b'bin:x:1:']
>>> 
>>> out = read_blocks('/etc/passwd', 10)
>>> 
>>> list(out)[:5]
[b'root:x:0:0', b':root:/roo', b't:/bin/bas', b'h\nbin:x:1:', b'1:bin:/bin']
>>>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы