Почему я записываю только 28 672 бита в этот файл? - PullRequest
3 голосов
/ 31 марта 2020

Я работал над проектом, в котором необходимо запрограммировать двоичный файл определенного вида на чип AT28C256. Специфика не важна за исключением того факта, что размер файла должен быть 32 768 байт (точно).

У меня есть некоторый код "минимальной проблемы":

o = open("images.bin", "wb")
c = 0
for i in range(256):
    for j in range(128):
        c += 1
        o.write(chr(0).encode('utf-8'))
print(c)

Это, чтобы мне, кажется, записать 32 768 байт в файл (разделение на i, j необходимо, потому что мне нужно записать изображение на устройство) как 128 * 256 = 32768. И вывод c равен 32768!

Но создаваемый файл имеет длину 28672 байт! Тот факт, что это 7000 в гексе, не прошел мимо меня, но я не уверен, почему это происходит. Есть идеи?

1 Ответ

2 голосов
/ 31 марта 2020

Вы должны вызвать o.close() для flu sh буфера записи и правильно закрыть файл.

...