【发布时间】:2020-03-31 17:46:32
【问题描述】:
我一直在从事一个项目,需要将某种二进制文件编程到 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 十六进制的事实并没有让我忽略,但我不确定为什么会发生这种情况。有什么想法吗?
【问题讨论】:
-
您应该使用上下文管理器(
with声明)来处理文件,这将保证始终调用.close() -
谢谢!我完全没有意识到这一点。
标签: python python-3.x binaryfiles file-writing