import timeit import fileinput def fileread1(): file = open("test.txt") while 1: line = file.readlines() if not line: break pass file.close() def fileread2(): for l in fileinput.input("test.txt"): pass def fileread3(): file = open("test.txt") for l in file: pass t1 = timeit.Timer(setup='from __main__ import fileread1', stmt='fileread1()') t2 = timeit.Timer(setup='from __main__ import fileread2', stmt='fileread2()') t3 = timeit.Timer(setup='from __main__ import fileread3', stmt='fileread3()') num_lines = 1000000 num_runs = 20 time = t1.timeit(number=num_runs)/num_runs print "%s sec\t%d lines/sec" % (time, int(num_lines / time)) time = t2.timeit(number=num_runs)/num_runs print "%s sec\t%d lines/sec" % (time, int(num_lines / time)) time = t3.timeit(number=num_runs)/num_runs print "%s sec\t%d lines/sec" % (time, int(num_lines / time))