buffersize=50000
inflie = open('in.jpg','rb')
outfile = open('out.jpg','wb')
buffer = infile.read(buffersize)
while len(buffer):
outfile.write(buffer)
buffer = infile.read(buffersize)
我正在学习在python中读/写二进制文件的基础知识,并理解这段代码。 我非常感谢您理解这段代码。 谢谢!
答案 0 :(得分:0)
documentation回答了您的所有问题:
file.read([大小])
从文件中读取最多大小字节(如果读取在获取大小字节之前达到EOF,则更少)。如果size参数为负数或省略,则读取所有数据,直到达到EOF。字节作为字符串对象返回。立即遇到EOF时返回空字符串。 (对于某些文件,如ttys,在EOF被命中后继续读取是有意义的。)注意,此方法可能多次调用底层C函数fread(),以尽可能接近大小字节。另请注意,在非阻塞模式下,即使没有给出大小参数,也可能返回的数据少于请求的数据。
1:是的。 size
参数被解释为多个字节。
2:infile.read(50000)
表示“从infile读取(最多)50000个字节”。第二次调用此方法时,它将自动从文件中读取下一个50000字节。
3:buffer
不是文件,而是您上次从文件中读取的内容。当缓冲区为空时,即当没有更多数据要从文件中读取时,len(buffer)
将评估为False
。