首页 > 解决方案 > 为什么我只向该文件写入 28,672 位?

问题描述

我一直在做一个项目,需要将某种二进制文件编程到 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 十六进制的事实并没有让我忽略,但我不确定为什么会这样。有任何想法吗?

标签: pythonpython-3.xbinaryfilesfile-writing

解决方案


您应该调用o.close()以刷新写入缓冲区并正确关闭文件。


推荐阅读