2010-04-18 119 views
1

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

谢谢

回答

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() 
0

可以使用timeit module到时间代码片段(比方说,一个启动使用如在上面的答案描述子模块的外部命令的功能)和数据保存到一个csv文件。您可以使用stats模块或使用Excel/LogParser/R等外部数据统计csv数据。

另一种方法是使用hotshot分析器进行分析并返回可以使用print_stats打印的统计信息( )方法或迭代保存到文件。