Python中文件操作的性能

时间:2014-07-11 18:55:55

标签: python performance file-io

在执行操作之前读取整个文件是否更好?还是在从文件读取时执行操作更好?

如果我先读取整个文件,我会逐行将信息存储在一个列表中,如果我正在读取文件并同时对数据进行操作,那么我会一直在阅读-line并在读取一行后执行我的操作。

为了讨论起见,假设文件不是很大。听到关于小文件和大文件的想法以及行动会有所不同会很高兴。另外,我认为操作也起作用;我正在阅读网址并下载文件。

1 个答案:

答案 0 :(得分:1)

为什么不找出使用timeit模块的例子

import timeit

WORDS = "/usr/share/dict/words"

def a():
    num_lines = 0
    num_chars = 0
    with open(WORDS) as f:
        lines = f.readlines()
        num_lines = len(lines)
        for line in lines:
            num_chars += len(line)
    return num_lines, num_chars


def b():
    num_lines = 0
    num_chars = 0
    with open(WORDS) as f:
        for line in f:
            num_chars += len(line)
            num_lines += 1
    return num_lines, num_chars

if __name__ == '__main__':
    print timeit.timeit("a()", setup="from __main__ import a", number=100)
    print timeit.timeit("b()", setup="from __main__ import b", number=100)