read, readline, readlines

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运行,速度更快。

posted on 2015-01-23 16:10  qihui  阅读(116)  评论(0)    收藏  举报

导航