我想从Python脚本运行'time'unix命令,以计算非Python应用程序的执行时间。我会使用os.system方法。 有没有办法在Python中保存这个输出?我的目标是多次运行应用程序,保存执行时间,然后对它们进行一些统计。
谢谢
答案 0 :(得分:3)
你真的应该使用subprocess module来运行外部命令。 Popen()方法允许您指定stdout应该去的文件对象(注意,您可以使用任何行为类似于文件的Python对象,您不一定需要将其写入文件)。
例如:
import subprocess
log_file = open('/path/to/file', 'a')
return_code = subprocess.Popen(['/usr/bin/foo', 'arg1', 'arg2'], stdout=log_file).wait()
答案 1 :(得分:0)
您可以使用timeit module来编写代码片段(例如,使用子进程模块启动外部命令的函数,如上面的答案中所述)并将数据保存到csv文件中。您可以使用统计模块对csv数据进行统计,也可以使用Excel / LogParser / R等进行外部统计。
另一种方法是使用执行分析的hotshot分析器,并返回可以使用print_stats()方法打印的统计信息,也可以通过迭代保存到文件中。