如何在Python中获取gnuplot脚本的执行时间?

时间:2015-03-12 10:10:34

标签: python time gnuplot

我对Python很新,现在我想尝试一下它。 我想以下列方式导入Gnuplot脚本的执行时间:

 import os
 run_time = os.system("time gnuplot sript.gnuplot")
 print "run time:",run_time

我得到的是:

run time: 256

如果没有什么可以运行则为零,如果它正在做某事则为256。 run_time的类型是int,我试图获得这种字符串

0.65user 0.06system 0:00.72elapsed

我不知道此刻我做错了什么,但我会继续研究它。

我的问题是,是否有另一种方法来衡量这个执行时间,或者我是否可以某种方式纠正我的代码。

所有这一切的要点是我想把这个时间用作python脚本中的暂停,这样我就可以让Gnuplot有足够的时间来适应我的数据了。如果我在python中导入gnuplot库,我不知道我需要多少时间来适应我想要的每个情节,所以我不想停止这个过程并且不合适。(例如我想如果我使用暂停是一个坏主意,因为对于我模拟然后尝试拟合的每组数据点,完成拟合所需的时间对于每个图都是不同的。我希望我能尽可能清楚地解决问题!

提前致谢!

1 个答案:

答案 0 :(得分:0)

os.system函数为您提供程序的返回码,而不是它发送到输出的字符串。

使用subprocess模块代替启动gnuplot:

import subprocess
run_time_str = subprocess.check_output(['time', 'gnuplot', 'sript.gnuplot'])
print 'run time:', run_time_str

您还可以使用timeit模块直接在Python中测量时间:

import subprocess
from timeit import timeit
run_time = timeit(lambda: subprocess.call(['gnuplot', 'sript.gnuplot']), number=1)
print 'run_time: %.1f milliseconds' % (run_time*1000)

请注意,这会为运行时提供一个数字,而您必须自己从time的输出字符串(0.65user 0.06system 0:00.72elapsed)中提取它。