python中的command.getstatusoutput()缓冲区是否有限制

ani*_*haw 3 python linux

我已经创建了一个脚本来运行一批文件上的测试脚本,已经过夜测试两晚,但它只是在某个时刻挂起.

我想知道command.getstatusoutput()是否是这里的问题,因为测试脚本具有繁重的日志记录机制.

更新:
如何使用子进程模块功能与使用os.system()不同,哪种方式更好?

Ott*_*ger 6

该方法getstatusoutput() 返回一个字符串,该字符串可能很长,因此占用大量空间并导致分页到磁盘和其他讨厌的东西.

由于该commands模块无论如何都被弃用,因此最好使用subprocess提供对进程输出的类文件访问的模块.如果以后需要输出,只需将其写入硬盘上的文件即可

cmd = subprocess.Popen(['ls'], stdout=file('output', 'w'))
Run Code Online (Sandbox Code Playgroud)

如果您希望进程处理输出,请像这样读取标准输出

cmd = subprocess.Popen(['ls'], stdout=subprocess.PIPE)
for line in cmd.stdout:
    do_stuff(line)
Run Code Online (Sandbox Code Playgroud)

这将更容易记忆.