一个简单但有用的秒表库。

swp的Python项目详细描述


swpy:一个简单而实用的python秒表库

PyPI - Python VersionPyPICircleCIcodecovPyPI - License

要求

  • Python3.6+

安装

只需使用pip安装。

pip install swpy

用法

基本用法

swpy导入Timer类,并使用with语句将块封装到需要计时的位置。

fromswpyimportTimerfromtimeimportsleepwithTimer():sleep(1)

或者使用start()stop()函数来控制计时器。

t=Timer()t.start()sleep(1)t.stop()

输出如下:

[timer-1557406243.3309178] started.
[timer-1557406243.3309178] finish time: 1.00 sec.

功能

命名计时器

你可以给计时器起个名字让它容易辨认。

withTimer(name='test timer'):sleep(1)

现在计时器被重命名为test timer

[test timer] started.
[test timer] finish time: 1.00 sec.

圈速和分割时间

测量不停车时间有两种类型:单圈时间和分段时间。下图可能有助于您理解这些差异。

split_lap_time

我们为这种用法准备了splitlap函数。示例如下。

# measure split timewithTimer('timer')ast:sleep(1)t.split()sleep(1)t.split()sleep(1)t.split()
# outptus
[timer] started.
[timer] split time:  1.00 sec.
[timer] split time:  2.01 sec.
[timer] split time:  3.01 sec.
[timer] finish time: 3.01 sec.
# measure lap timewithTimer('timer')ast:sleep(1)t.lap()sleep(1)t.lap()sleep(1)t.lap()
# outputs
[timer] started.
[timer] lap time:    1.00 sec.
[timer] lap time:    1.01 sec.
[timer] lap time:    1.00 sec.
[timer] finish time: 3.01 sec.

在一次跑步中测量多个任务的情况下,你可以将你的圈速/分程时间命名如下。

withTimer('task timer')ast:task1()t.lap('task1')task2()t.lap('task2')
# outputs
[task timer] started.
[task timer] [task1] lap time:    3.69 sec.
[task timer] [task2] lap time:    4.21 sec.
[task timer] finish time: 7.91 sec.

使用自己的记录器

您可以使用自己的记录器,而不是默认的print

fromlogzeroimportloggerimportloggingwithTimer(name='test timer',logger=logger,level=logging.DEBUG):sleep(1)

它将使用记录器输出。

[D 190510 14:41:59 swpy:15] [test timer] started.
[D 190510 14:42:00 swpy:15] [test timer] finish time: 1.01 sec.

定义自己的回调

有时,我们想在工作完成后做一些事情,比如通知结果松弛,执行下一个进程等等。回调功能将帮助您做到这些。

# define a slack notification functionimportrequests,jsondefsend_slack(msg):requests.post(SLACK_URL,json.dumps({'text':msg}))# just specify the callback argumentwithTimer(name='experiment-1',callback=send_slack):sleep(1)

许可证

MIT

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JAVAutil。整数java的扫描器键盘输入   java通知运行后立即崩溃   java如何在一个只能由类修改而不能由其实例修改的类中生成静态变量?   数据库Java字段猜测   返回值周围的java括号为什么?   java Android更新通讯录中的联系人   一个消费者正在读取数据   java是否可以通过编程方式为蓝牙配对设置pin?   java Spring引导和buildResponseEntity()   java为什么序列化可以在没有实现可序列化的情况下工作   Java同步无助于相互排斥   twitter Java Twitter4J未在推文下显示源标签   为什么Javasocket不支持中断处理?