国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > Python流式读取大文件的两种方法

Python流式读取大文件的两种方法

头像

宋雪维

2021-02-23 15:47:098292浏览 · 0收藏 · 0评论

Python流式读取大文件的两种方法

1、使用 read 方法分块读取

使用更底层的file.read()方法,与直接循环迭代文件对象不同,每次调用file.read(chunk_size)会直接返回从当前位置往后读取 chunk_size 大小的文件内容,不必等待任何换行符出现。

def count_nine_v2(fname):
    """计算文件里包含多少个数字 '9',每次读取 8kb
    """
    count = 0
    block_size = 1024 * 8
    with open(fname) as fp:
        while True:
            chunk = fp.read(block_size)
            # 当文件没有更多内容时,read 调用将会返回空字符串 ''
            if not chunk:
                break
            count += chunk.count('9')
    return count

2、利用生成器解耦代码

可以定义一个新的chunked_file_reader生成器函数,由它来负责所有与“数据生成”相关的逻辑。

count_nine_v3里面的主循环就只需要负责计数即可。

def chunked_file_reader(fp, block_size=1024 * 8):
    """生成器函数:分块读取文件内容
    """
    while True:
        chunk = fp.read(block_size)
        # 当文件没有更多内容时,read 调用将会返回空字符串 ''
        if not chunk:
            break
        yield chunk


def count_nine_v3(fname):
    count = 0
    with open(fname) as fp:
        for chunk in chunked_file_reader(fp):
            count += chunk.count('9')
    return count

使用 iter(callable,sentinel) 的方式调用它时,会返回一个特殊的对象,迭代它将不断产生可调用对象 callable 的调用结果,直到结果为 setinel 时,迭代终止。

def chunked_file_reader(file, block_size=1024 * 8):
    """生成器函数:分块读取文件内容,使用 iter 函数
    """
    # 首先使用 partial(fp.read, block_size) 构造一个新的无需参数的函数
    # 循环将不断返回 fp.read(block_size) 调用结果,直到其为 '' 时终止
    for chunk in iter(partial(file.read, block_size), ''):
        yield chunk

以上就是Python流式读取大文件的两种方法,希望能对你有所帮助哟~

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

爸井空《办公室爱欲》| 《厨房激战5》完整版在线观看| 免费的行情网站WWW下载大全| 扌雷辶鬲的小说章节| 蜜糖在线观看免费高清电视剧 | 挺进朋友人妻张婉莹身体| 暴躁少女CSGO高清大图特点| 《搬家工人的绝遇》观看| 女性三角毛毛若隐若现| 两富婆轮流上阵| 白日梦我电视剧免费观看完整版| 翁吻乳婷婷小玲21章| 我把刘姨俩腿扛在肩上是哪一集的| 《列车上的轮杆》1-4| 潮湿的体温2| 妈妈俱乐部1-34节小说| 火车上荫蒂添的好舒服图片| 《年轻朋友的妻子3》| 成品PPT网站大片入口| 美丽小洞5荷尔蒙| 正常硬度是多硬| 淘宝情趣记事BY欲晓| 黑料门今日黑料最新| 色翁荡熄1-13老卫淑芬视频| 呱呱爆料网每日爆料| 瑜伽馆里的私密按摩效果怎么样| 录像狗配女人| 《女学生做爰》| 《日本公与媳5》公妇伦| 老公装醉看我和别人在一起| 妈妈的绣感7| 26个阴性外貌长相图片| 吃爸爸大吉吧父子原文出处| 成品PPT网站大片| 妈妈的朋友在线播放| 挪威的森林截了一段3分钟| 男生亲你阴部代表什么心理| 疯狂祖母免费观看高清版| 无人区免费高清版观看| B站暴躁少女CSGO| 《急救护士1982满天星》