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