Python运行命令行(时间)

时间:2010-04-18 15:57:08

标签: python command-line time

我想从Python脚本运行'time'unix命令,以计算非Python应用程序的执行时间。我会使用os.system方法。 有没有办法在Python中保存这个输出?我的目标是多次运行应用程序,保存执行时间,然后对它们进行一些统计。

谢谢

2 个答案:

答案 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()方法打印的统计信息,也可以通过迭代保存到文件中。