擅长:python、mysql、java
<p>因此,假设块大小为32768字节,我得出如下结论:</p>
<pre><code>from functools import partial
BLOCKSIZE = 32 * 1024
with open('testfile.bin', 'rb') as f:
for block_number, data in enumerate(iter(partial(f.read, BLOCKSIZE), b'')):
if not any(data):
print('Block #{0} is empty!'.format(block_number))
</code></pre>
<p><code>sum()</code>是确定序列中每个字节是否都有零值的最快方法。我认为它不可能比<code>O(n)</code>更快。</s><br/>
<a href="https://stackoverflow.com/users/5378816/vpfb">VPfB</a>建议使用<code>any()</code>,这非常快,因为它终止于第一个非零元素,而不是遍历整个序列。你知道吗</p>
<p>输出示例:</p>
<pre><code>Block #0 is empty!
Block #100 is empty!
Block #200 is empty!
</code></pre>
<p>我希望在我的机器上处理速度足够快。你知道吗</p>