3
我已经创建了一个脚本来对一批文件运行一个测试脚本,它已经在夜间进行了两个晚上的测试,但是它只是停留在某个点上。是否对Python中的command.getstatusoutput()缓冲区有限制
我想知道command.getstatusoutput()是否是这里的问题,因为测试脚本有一个沉重的日志记录机制。
更新:
如何使用子进程模块功能不同于使用os.system()哪种做事方式更好?
我已经创建了一个脚本来对一批文件运行一个测试脚本,它已经在夜间进行了两个晚上的测试,但是它只是停留在某个点上。是否对Python中的command.getstatusoutput()缓冲区有限制
我想知道command.getstatusoutput()是否是这里的问题,因为测试脚本有一个沉重的日志记录机制。
更新:
如何使用子进程模块功能不同于使用os.system()哪种做事方式更好?
方法getstatusoutput()
返回一个字符串,该字符串可能非常长,因此占用大量空间并导致分页到磁盘和其他令人讨厌的事情。
由于commands
模块无论如何都被弃用,所以最好使用subprocess
模块,它提供了类似于文件的访问过程输出。如果您需要为以后的输出,只是把它写在文件中的硬盘上
cmd = subprocess.Popen(['ls'], stdout=file('output', 'w'))
如果你想程序处理输出,读stdout中这样
cmd = subprocess.Popen(['ls'], stdout=subprocess.PIPE)
for line in cmd.stdout:
do_stuff(line)
这将是更容易上你的记忆。