Python:统计文件行数
Pyhont食谱里的,链接:http://wiki.woodpecker.org.cn/moin/PyCkBk-4-7
添加了一个方法4,同时发现我的电脑上第三种方法要快一些
D:\\python\>countLines.py
linecount_1 49238
linecount_2 49238
linecount_3 49238
linecount_4 49238
linecount_1: 0.18
linecount_2: 0.16
linecount_3: 0.09
linecount_4: 0.16
- # -*- coding: utf-8 -*-
- import time
- def timeo(fun, n=10):
- start = time.clock()
- for i in range(n): fun()
- stend = time.clock()
- thetime = stend-start
- return fun.__name__, thetime #返回函数名称,函数运行10次总时间的 元组
- import os
- fname="YourFileName" #稍微改了一下,添加了一个文件名变量
- def linecount_wc():
- return int(os.popen('wc -l nuc').read().split()[0]) #使用外部系统程序 wc -l
- def linecount_1( ): #使用方法1
- return len(open(fname).readlines())
- def linecount_2(): #使用方法2
- count = 0
- for line in open(fname).xreadlines(): count += 1
- return count
- def linecount_3(): #使用方法3
- count = 0
- thefile = open(fname)
- while 1:
- buffer = thefile.read(65536)
- if not buffer: break
- count += buffer.count('\n')
- return count
- def linecount_4(): #添加的方法4
- count=0
- for line in open(fname):
- #if(line!='\n'): count+=1
- count+=1
- return count
- for f in linecount_1, linecount_2, linecount_3,linecount_4:
- print f.__name__, f()
- for f in linecount_1, linecount_2, linecount_3,linecount_4:
- print "%s: %.2f"%timeo(f)
没有评论▼