#!/bin/env python
from timeit import Timer
def timeKeeper(func,num=100):
t = Timer(func.__name__+"()","from __main__ import "+func.__name__)
thetime = t.timeit(num)
return func.__name__,thetime
def linecount1():
length= len(open('ABBREV.txt','rU').readlines()) #1
return length
def linecount2():
count=-1
for count,line in enumerate(open('ABBREV.txt')):
pass
return count+1 #2
def linecount3():
count =0
thefile=open('ABBREV.txt','rU')
while True:
buffer = thefile.read(65536)
if not buffer:break
count+=buffer.count('\n')
return count
for f in linecount1,linecount2,linecount3:
print f.__name__,f()
for f in linecount1,linecount2,linecount3:
print "%s:%.2f"%timeKeeper(f)
原文件大小1993KB
运行结果 写道
linecount1 7907
linecount2 7907
linecount3 7907
linecount1:1.19
linecount2:1.14
linecount3:0.77
写这段代码总结:
1、三种方式速度上差别不是很明显,如果文件超大,第一种方式linecouont1可能会很慢,因为程序会一次性把文件读入内存,如果内存太小可能还会报错。第二种速度稍快,适合于大文件。第三种方式一次读取固定字节,并计算其中的换行符,这种方法速度很快,因为这里统计的是字符"\n"。
2、代码注释1处如果写成:
len= len(open('ABBREV.txt','rU').readlines())
return len
就会有异常:UnboundLocalError: local variable 'len' referenced before assignment
究其原因是在给变量len赋值的时候就已经调用了len函数,python解释器在此处不再把len当成函数来处理,因为用户已经把python的执行环境中的len函数用用户自定义的len给覆盖了。既然被覆盖了len,而这里在给len赋值之前,len已经被引用(len(open....)),所以报错。
3、代码注释2除如果写成:
return count+=1
会报 invalid syntax,语法错误,此语法不同于Java,在Python中,赋值语句不能作为合法的表达式,赋值语句在python中没有返回值
参考:
python cookbook
UnboundLocalError
python 计时工具
作者:liuzhijun 转载请注明出处,谢谢合作
分享到:
相关推荐
根据提供的信息,我们可以总结出以下关于...通过上述分析,我们可以看到在Python中统计文件行数有多种方法可供选择,每种方法都有其适用的场景。实际应用中,可以根据文件的大小和特定的需求来选择最合适的方法。
标题中提到的“统计文件代码行数的工具”可能是一个独立的应用程序,例如“CountLines.exe”。这个可执行文件很可能是为Windows操作系统设计的,用于快速扫描指定目录下的源代码文件并计算代码行数。它可能支持多种...
在IT行业中,统计源文件行数是一项常见的任务,特别是在软件开发和代码维护的过程中。这个任务有助于我们理解代码的规模,评估项目的复杂性,以及在性能优化时作为参考。以下是一些与"统计源文件行数"相关的知识点:...
获取单个文件行数 文件:test1.sh 行数:20 方法一 代码如下: awk ‘{print NR}’ test1.sh|tail -n1 如图所示: 方法二 代码如下: awk ‘END{print NR}’ test1.sh 如图所示: 方法三 代码如下: grep -n “” ...
"统计源代码行数工具exe"正是这样一款实用工具,它允许用户快速地对代码库进行分析,统计不同类型的代码文件行数。 这款工具的主要功能在于它的易用性和灵活性。作为一个.exe可执行文件,用户无需安装任何额外的...
在VB.NET中,统计文件行数是一项常见的任务,特别是在数据处理和分析的场景下。这个程序实例为你提供了一个基础的解决方案,帮助初学者理解如何利用VB.NET进行文件输入/输出(I/O)操作。下面我们将详细探讨相关的知识...
bat脚本统计多个.txt文件行数之和
非常好用的小程序,可以轻松统计文件的行数
在IT行业中,统计代码行数是一项常见的任务,特别是在软件开发、项目管理和代码审计的过程中。这个压缩包提供的工具显然是为了帮助用户快速、方便地在Windows环境下完成这个任务,无需额外的配置,只需解压后运行run...
python可以统计文件的行数,你相信吗?不管你信不信反正我信了。下面我们来看一下python怎样统计文件的行数,代码很简单,我也做了注释,很简单的实现。。。.zip
标题提到的“代码行数统计工具”是专门用于计算源代码文件中行数的实用程序,适用于各种项目。这种工具能够帮助开发者、项目经理和质量保证人员了解项目的整体状况,进行进度跟踪、资源规划和复杂性分析。 代码行数...
这些文件可能并不是直接相关的统计代码行数的代码,但它们是构建和运行Java项目所必需的。 总的来说,通过Java实现的这个工具,我们可以自动化地获取SVN仓库中的代码修改情况,这对于项目管理和团队协作具有重要的...
除了编写脚本,还有一些现成的工具和命令行工具,如`wc`(在Unix/Linux系统中)或某些IDE(如Visual Studio Code)提供的插件,也能快速统计文件行数。 综上所述,"统计文件夹下文件行数"是一个实用的IT技能,它...
- **代码行数统计**:VBCodeLines能够精确计算VB6项目中各个模块、类、过程的代码行数,包括空行、注释行和实际代码行。 - **分类统计**:它区分了不同类型的代码行,如常量定义、变量声明、函数、过程等,帮助...
4. 查看结果:统计结果通常会在一个弹出窗口或者Eclipse的输出视图中显示,列出了不同类型的代码行数,比如总行数、注释行数、空行数以及实际代码行数。 5. 分析与优化:根据统计结果,开发者可以判断代码是否有...
在软件开发过程中,统计源代码行数是一种常见的度量方式,可以帮助开发者理解项目的规模、复杂性和维护成本。本文将深入探讨“统计源代码行数工具”及其重要性,并提供一些实用的方法来完成这项任务。 首先,我们要...
在C#编程中,统计代码行数是一项常见的需求,特别是在软件开发过程中进行代码质量管理或评估项目规模时。本文将详细讲解如何使用Visual Studio 2013(VS2013)来统计代码行数,并扩展到处理不同文件类型以及包含多个...
python可以统计文件的行数,你相信吗?不管你信不信反正我信了。下面我们来看一下python怎样统计文件的行数,代码很简单,我也做了注释,很简单的实现。。。