我已经创建了一个脚本来运行一批文件上的测试脚本,已经隔夜测试了两个晚上,但它只是在某个时刻挂起。
我想知道command.getstatusoutput()是否是这里的问题,因为测试脚本具有繁重的日志记录机制。
更新:
如何使用子进程模块函数不同于使用os.system()哪种方式做得更好?
答案 0 :(得分:6)
方法getstatusoutput()
返回一个字符串,该字符串可能很长,因此占用大量空间并导致分页到磁盘和其他令人讨厌的东西。
由于commands
模块已被弃用,因此最好使用subprocess
模块,该模块提供对进程输出的类文件访问。如果以后需要输出,只需将其写入硬盘上的文件
cmd = subprocess.Popen(['ls'], stdout=file('output', 'w'))
如果您希望进程处理输出,请像这样读取标准输出
cmd = subprocess.Popen(['ls'], stdout=subprocess.PIPE)
for line in cmd.stdout:
do_stuff(line)
你的记忆会更容易。