韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

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

关注

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

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

亲嘴还扔衣服| 乱亲H女乱秽XXXX| 三个领导换着躁我几小时在线观看| 欧美大妈LOGO大全| 《特别酒店》免费观看| 无情扌雷辶鬲| 续父开续女包小芳有没有出版?| 《完美邻居2》电影在线观看| 宝宝水帘洞都拉丝了怎么办| 李丽珍| 《丰满人妻的滋味2HD| 疯狂做爰XXXX高潮喷水小说| WWWWWWWW在线观看国产| 男朋友摸完小花园小肚子有点痛| 一个添B-个添3个人添| 激战2奶妈| 学长突然把自慰器开到最大| 日韩精品国产一区二区三区| 《入室暴行》国语| 欧美XBOX与IPHONE| 成版人黄瓜视频APP| 老师和学生深入交流人生奥秘| 灭火宝贝高清完整版在线观看| 李丽珍| 闺蜜老公把我压在怀里| 拆迁法律咨询| 久久婷婷五月综合色国产香蕉| 情趣内衣秀| 黏糊糊的你》动漫免费观看| 人野兽马狗猪大全| 表妹的下面好湿好紧| 半推半就干朋友老婆下一句怎么接| 每天晚上都在汆肉中度| 臭小子快拔出来危险期会怀孕 | 金瓶第1回双乳被吸| 永久免费无代码开发平台网站| 欧美电影免费观看电视剧大全| 《性呻吟》伦理| 爸爸的大DJ小说| 妈妈你真棒插曲快来救救我电影| 里番