【发布时间】:2018-08-19 06:06:49
【问题描述】:
我的代码以 2MB 块读取二进制磁盘映像文件并将每个块保存为单独的文件。
我唯一的特殊要求是如果它包含全零,则跳过保存块;这一切都是为了速度和效率。我担心我目前使用 .count() 的方法可能不是最有效的:
with open("source.img", "rb") as src:
for addr in range(0, sourcesize, chunksize):
buf = src.read(chunksize)
with open("imgdir/"+hex(addr), "wb") as dest:
if len(buf) > buf.count(b"\x00"): # <---this concerns me
dest.write(buf)
实践中的表现乏善可陈。我知道 Python 不是为速度而设计的,但它是否提供了更好的选择?也许是一个函数在缓冲区中找到“除 x00 之外的任何内容”,平均而言,它应该以更少的迭代次数更早地返回?
【问题讨论】:
标签: arrays string search binary zero