python读取二进制文件需要更新_使用更新的惯用法在二进制文件上进行Python文件迭代...

在Python中,对于二进制文件,我可以这样编写:

buf_size=1024*64 # this is an important size...

with open(file, "rb") as f:

while True:

data=f.read(buf_size)

if not data: break

# deal with the data....

对于要逐行读取的文本文件,我可以编写以下代码:

with open(file, "r") as file:

for line in file:

# deal with each line....

简写为:

with open(file, "r") as file:

for line in iter(file.readline, ""):

# deal with each line....

PEP

234中记录了该惯用语,但我无法为二进制文件找到类似的惯用语。

我已经试过了:

>>> with open('dups.txt','rb') as f:

... for chunk in iter(f.read,''):

... i+=1

>>> i

1 # 30 MB file, i==1 means read in one go...

我尝试放置,iter(f.read(buf_size),'')但这是语法错误,因为在iter()中的callable之后有括号。

我知道我可以编写一个函数,但是默认习惯用法有没有办法在for chunk in file:哪里使用缓冲区大小而不是面向行?

感谢您忍受Python新手尝试编写他的第一个平凡而又惯用的Python脚本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值