1. Chunks——分块处理
2. 分段式反复读取
3. with open()
4. fileinput()
该模块的input()函数有点类似文件readlines()方法,但它是一个可迭代对象,即每次只生成一行,需要用for循环迭代。在碰到大文件的读取时,无疑效率更高效。用fileinput对文件进行循环遍历,格式化输出,查找、替换等操作,非常方便。
1.方法一:利用yield生成器
2. 方法二:利用open()自带方法生成迭代对象,这个是一行一行的读取
总结:二者的比较
方法一:可以灵活控制一次读取的size,在速度上较2有优势,适用于一些大的二进制文件,比如读取一些大的视频或者图片等。
方法二:在处理一些文本的时候感觉更加便利,按行读更容易对文本进行处理。
常用方式一:
上述方式不会一次性读取整个文件,类似buffer机制。
对可迭代对象 f,进行迭代遍历: for line in f ,会自动地使用缓冲IO(buffered IO)以及内存管理。
方式二:
自己实现类似于buffer:
== 不适合的方法 ==