我对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库,我不知道我需要多少时间来适应我想要的每个情节,所以我不想停止这个过程并且不合适。(例如我想如果我使用暂停是一个坏主意,因为对于我模拟然后尝试拟合的每组数据点,完成拟合所需的时间对于每个图都是不同的。我希望我能尽可能清楚地解决问题!
提前致谢!
答案 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
)中提取它。