文档章节

Python2.7 linecache&&timeit模块学习

China_OS
 China_OS
发布于 2013/01/31 09:21
字数 550
阅读 1306
收藏 9
linecache 

    当你试图优化从任何文件中读取任何行时,可以使用linecache模块,该模块采用cache缓存文件, 你可以在缓存中读取指定文件的指定行。

linecache提供了以下函数:

    linecache.getline(filename, lineno[, module_globals])
    通过lineno(行号)获取filename中的行,该函数永远不会返回异常,如果是error会返回空(''),如果文件名没有找到,函数则会通过sys.path包含的路径去查找。

    linecache.clearcache()
    清除cache。

     linecache.checkcache([filename])

    检查cache的有效性,如果文件在cache中,但是disk上的文件已经改变,你可以更新cache内容,如果没有提供文件名,它会检查所有在cache的内容。

eg:

>>> import linecache
>>> linecache.getline('/tmp/ttt',6)
'6\n'
>>> linecache.checkcache('/tmp/ttt')
>>> linecache.getline('/tmp/ttt',6)
'7\n'
>>> linecache.clearcache()

timeit
    提供了一个简单的方法,测试少量python代码块的运行时间,它既有命令行接口,也有python接口调用。
命令行接口使用:
python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [statement ...]
-n N  --number=N  执行多少次语句
-r N  --repeat=N  执行多少次timer 默认3次
-s statement --setup=statement  初始化时执行的声明语句
-t --time  使用time.time()
-c --clock  使用time.clock()
-v --verbose  显示更详细的信息

    有可能出现多行语句的情况,每行可以当作一个单独的语句声明,语句被引号包含,并且在要缩进的语句前面有空格,或者使用多个-s参数
eg:

root@vm11:/tmp#python -m timeit -s'text="abc";p="a"' 'p in text'
10000000 loops, best of 3: 0.0636 usec per loop

python接口使用:

timeit模块定义了三个函数和一个类
    timeit.timeit(stmt='pass', setup='pass', timer=<default timer>, number=1000000)
    用给定的语句创建一个timer实例,setup代码和timer函数执行timeit()方法number次

    timeit.repeat(stmt='pass', setup='pass', timer=<default timer>, repeat=3, number=1000000)
    用给定的语句创建一个timer实例,setup代码和timer函数执行repeat()方法number次,整个过程重复repeat次

    timeit.default_timer()
    默认的timer。

    class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)
    定义了三个方法,timeit、repeat、print_exc

eg

>>> import timeit
>>> t = timeit.Timer('char in text', setup='text = "sample string"; char = "g"')
>>> t.timeit()
0.09689593315124512
>>> t.repeat()
[0.09645605087280273, 0.09559297561645508, 0.09540891647338867]


© 著作权归作者所有

China_OS
粉丝 427
博文 463
码字总数 519985
作品 0
静安
技术主管
私信 提问
python的sys.path(环境变量)简单总结

基本概念: sys.path指定用于模块搜索路径的字符串列表。 它根据环境变量PYTHONPATH进行初始化,再加上安装时的默认值。 >>> sys.path ['', '/opt/lib/python2.7/site-packages/setuptools-0......

张旭0512
2015/09/16
11.8K
0
python中的模块

############################################# ################module####################### ############################################# 在 Python 中,一个.py文件就称之为一个模块......

2017lw
2017/07/26
0
0
Python中模块使用及面向对象介绍

1.模块使用 模块: 模块式pyth1.on组织代码的基本方式 一个python脚本可以单独运行,也可以导入另一个脚本中运行,当脚本被导入运行时,我们将其称为模块(module) 所有的点p为文件都可以作为...

枫叶云
2018/01/10
0
0
解决问题:启动Python时报“ImportError: No module named site”错误

问题: 设置了Python的路径,但启动Python时总是报“ImportError: No module named site”这个错误。 [root@tZ game]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root......

JungleKing
04/19
159
1
python的lxml模块

环境:python2.7 安装lxml模块 pip install lxml 例子: from lxml import etreetext = ''' first item second item...

天道酬勤VIP
2017/10/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
8
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
7
0
作为一个(IT)程序员!聊天没有话题?试试这十二种技巧

首先呢?我是一名程序员,经常性和同事没话题。 因为每天都会有自己的任务要做,程序员对于其他行业来说;是相对来说比较忙的。你会经常看到程序员在发呆、调试密密麻麻代码、红色报错发呆;...

小英子wep
今天
30
0
【SpringBoot】产生背景及简介

一、SpringBoot介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要...

zw965
今天
14
0
简述并发编程分为三个核心问题:分工、同步、互斥。

总的来说,并发编程可以总结为三个核心问题:分工、同步、互斥。 所谓分工指的是如何高效地拆解任务并分配给线程,而同步指的是线程之间如何协作,互斥则是保证同一时刻只允许一个线程访问共...

dust8080
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部