关于大文件读写

最近看了下自己的博文,发现虽然有些关于文件的操作,但是没有关于超过2G的文件操作。搜了一些别人写的博文,贴出来以后备用,自己就懒得写了。一般自己用也就用with open() as  F ,后面操作F,  文件对象F视为一个迭代器,会自动的采用缓冲IO和内存管理,方便快捷。下面是一些简单的方法

1.看到文件这么大,我们的第一反应都是把文件分割成小块的读取不就好了吗

复制代码
def read_in_chunks(filePath, chunk_size=1024*1024):
    """
    Lazy function (generator) to read a file piece by piece.
    Default chunk size: 1M
    You can set your own chunk size 
    """
    file_object = open(filePath)
    while True:
        chunk_data = file_object.read(chunk_size)
        if not chunk_data:
            break
        yield chunk_data
if __name__ == "__main__":
    filePath = './path/filename'
    for chunk in read_in_chunks(filePath):
        process(chunk) # <do something with chunk>
复制代码

2.使用with open()

#If the file is line based
with open(...) as f:
    for line in f:
        process(line) # <do something with line>

3.fileinput处理

import fileinput
for line in fileinput.input(['sum.log']):
    print line



下面是参考链接:

https://www.cnblogs.com/yu-zhang/p/5949696.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值