关于readlines与read效率的比较

本文探讨了在处理文件时,`f.read()`与`f.readlines()`的效率差异。通过测试一个5M大小,近19万行的文件,发现`f.readlines()`的平均时间(0.204秒)显著低于`f.read()`的平均时间(0.426秒),这与某些观点相悖。作者建议对于效率问题,应亲自验证以获取准确结论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为多是以来一直使用f.readlines()来处理文件,今天看了一篇帖子说,f.read()的效率要高于f.readlines()而且f.read()还更智能。当然,“智能”这个词到底体现在哪我还不知道,但是效率觉得值得商榷,然后自己写个小程序测试下。有点坑了,所以嘛,有歧义的话,还是自己动手去验证吧。。。。

测试文件大小为5M,近19万行。

import time
import codecs
import os
def read_95K():
    path = r"E:\SVN\chocolate_ime\doc"
    filename = os.path.join(path,"Cizu_komoxo95K.txt")
    with codecs.open(filename,encoding="gbk") as f:
        for line in f.readlines():
            if line.startswith(";"):
                pass
            else:
                splited_line = line.split("\t")
                word = splited_line[0]
                pinyin = splited_line[1]
                freq = splited_line[2]
def read_95K_seldom():
    path = r"E:\SVN\chocolate_ime\doc"
    filename = os.path.join(path,"Cizu_komoxo95K.txt")
    with codecs.open(filename,encoding="gbk") as f:
        for line in f:
            if line.startswith(";"):
                pass
            else:
                splited_line = line.split("\t")
                word = splited_line[0]
                pinyin = splited_line[1]
                freq = splited_line[2]
def time_check():
    start_time = time.time()
    # read_95K()#0.203999996185
    read_95K_seldom()#0.425999879837
    end_time = time.time()
    print end_time - start_time
time_check()

f.read()平均时间:0.425999879837

f.readlines()平均时间:0.203999996185

时间对比,使用f.readlines()效率要高出f.read()一倍

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值