Python按行读取大文件

在工作中遇到一个需求,需要用Python脚本读取一个13G的文件,把每行的记录写入redis。由于机器的内存只有8G,所以不能一次将磁盘上的文件全部读入内存,需要一行一行读取文件。

Python按行读取文件主要是使用file.readline方法或者利用file对象的迭代器性质,而file.readlines方法则是一次把所有内容从磁盘读入内存。当内存足够时,file.readlines方法显然会更快,因为磁盘I/O次数更少。

下面给出了三种遍历文件每行的方式:

if __name__ == '__main__':
    # Method 1: 通过readlines方法一次把整个文件从磁盘读入内存,在内存中遍历各行    
    with open('test.txt', 'r') as file:
        lines = file.readlines()
        for line in lines:
            print(line)
            
    # Method 3:通过readline方法一次将文件的一行读入内存
    with open('test.txt', 'r') as file:
        while True:
            line = file.readline()
            if line:
                print(line)
            else:
                break
            
    # Method 2: IO对象本身是一个可迭代对象,通过迭代器访问文件对象,每次将文件的一行从磁盘读入内存
    file = open('test.txt', 'r')
    for line in file:
        print(line)
    file.close()

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值