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后面有parens。
我知道我可以编写一个函数,但是有没有办法使用默认的习惯用法for chunk in file:,在这里我可以使用缓冲区大小而不是面向行?
感谢您容忍Python新手尝试编写他的第一个非琐碎且惯用的Python脚本。