read, readline, readlines

本文介绍了一种高效处理大文件的方法,并对比了Python中的while循环与for循环在执行速度上的差异,提供了在处理大数据时的优化策略。

read读取指定长度,返回字符串

readline 每次读取一行

readlines 将整个文件读取到内存中。

对于大文件(大于内存)的处理,readline的一行行迭代影响效率。网上看到有个老外给了个很不错的处理办法:

import io

def readInChunks(fileObj, chunkSize=2048):
    """
    Lazy function to read a file piece by piece.
    Default chunk size: 2kB.
    """
    while True:
        data = fileObj.read(chunkSize)
        if not data:
            break
        yield data

f = open('test.txt')
g = open('New Text Document.txt','w')
for chuck in readInChunks(f):
    g.write(chuck)
g.close()

顺便再提下,
while和for 在python里面的运行速度是不一样的。

while是pvm 运行字节码, 运行慢一些

for 是将代码转化成 C运行,速度更快。

转载于:https://www.cnblogs.com/qihui/p/4244475.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值