按字节数划分文件

时间:2016-07-01 03:16:30

标签: python python-2.7 file file-io

我正在制作文件共享程序,当我发送文件时,我只想发送1024个字节,然后发送下一个1024字节,依此类推。我使用scapy而不是套接字,所以我需要手动执行此操作。如何将文件分成1024个字节的块?

1 个答案:

答案 0 :(得分:1)

你可以写一个简单的循环:

while True:
    block = f.read(1024)
    if not block:
        break
    ... do stuff with block ...

每次调用read都会读取数据并提升文件位置,因此每次都会获得一个新块。或者,您可以更聪明一些,并使用两个arg iter来生成执行相同逻辑的Python生成器,但使用for循环看起来更清洁:

from functools import partial

for block in iter(partial(f.read, 1024), b''):  # Change b'' to '' for text mode file
    ... do stuff with block ...