Python按行读取大文件

Python 专栏收录该内容
38 篇文章 0 订阅

在工作中遇到一个需求,需要用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()

 

  • 1
    点赞
  • 3
    评论
  • 8
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值