Python按行读取大文件

系统 135 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: 通过迭代器访问文件对象,每次将文件的一行从磁盘读入内存
    file = open('test.txt', 'r')
    for line in file:
        print(line)
    file.close()
            
          

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请请扫描上面二维码支持博主1元、2元、5元等您想捐的金额吧,狠狠点击下面给点支持吧

发表我的评论
最新评论 总共0条评论