国产成人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流式读取大文件的两种方法,希望能对你有所帮助哟~

关注

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

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

欧美大妈LOGO大全及价格图 | 女儿借爸爸种生孩子| 轮流享用高岭之花笔趣阁最新章节| 情趣内衣| 村上凉子| 《无能的丈夫》完整版| 我和小姨子做爱HD完整版| 少妇洗澡被强公日日澡-百度| 欧美大片PPT免费PPT| 黑料社区| 免费的行情网站WWW下载大全| 《肉体暴力强伦轩》| 韩剧《酒醉热吻》| 鲁鲁射击免费播放电视剧全部| 7W7W77777的中文意思| 女性抹胸开襟哺乳衣的注意事项| 教练车内含乳挺进她漫画| 疯狂搅动音乐老师的小句号| 国产3M9448A新版双面胶| 浴室里强做开腿呻吟的H漫画| 大鹏| 公翁挺进小玲的小沉| 《肉体暴力强伦轩》| 《太太你想丈夫被开除吧》| 白丝小脚夹住命根上下摩擦的预防..| 妈妈你真棒插曲快来救救我电影| 黄篇| 国产真实乱人偷精品视频免费| 少女的夜晚初体验免费观看电视剧| 《湿点》未增减板相似| 坤坤寒进桃子里在线看歌词| 《一滴都不许漏》何泽城林萌| 欧美电影免费观看电视剧大全| 丝瓜视频| 破浪男女在线观看电影完整版| 欧美大片| 丈夫不在家儿媳想老公的背景故事| 《老板娘2》完整版| 《厨房韵母2》动漫下线了吗| 两个人轮流上24小时的班| 我穿KK被同桌C出水了H漫画