Por que eu só escrever 28.672 bits para este arquivo?

Isky Mathews:

Tenho vindo a trabalhar em um projeto onde é necessário programar um arquivo binário, de um certo tipo, a um chip AT28C256. As especificidades não são importantes além do fato de que o arquivo precisa ser 32.768 bytes de tamanho (exatamente).

Eu tenho algum código "mínimo problema" aqui:

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)

Isso, para mim, parece escrever 32.768 bytes para um arquivo (a divisão em i, j é necessário porque eu preciso escrever uma imagem para o dispositivo) como 128 * 256 = 32768. E a saída de c é 32768!

Mas o arquivo que ele cria é 28672 bytes! O fato de que este é 7000 em hexadecimal não passou por mim, mas eu não sei por que isso está acontecendo. Alguma ideia?

blhsing:

Você deve chamar o.close()para liberar o buffer de gravação e fechar o arquivo corretamente.

Acho que você gosta

Origin http://10.200.1.11:23101/article/api/json?id=387840&siteId=1
Recomendado
Clasificación