python大文件处理

Python015

python大文件处理,第1张

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:

== 不适合的方法 ==