我正在查看Python文档,发现有4-5个不同版本的popen(),例如os.popen(),os.popen2()等.
除了一些包括stderr而另一些不包括stderr的事实之外,它们之间有什么区别以及何时使用每一个?文档并没有真正解释得很好.
杰森说得对.总结一下更容易看到的方式:
os.popen() - > stdout
os.popen2() - >(stdin,stdout)
os.popen3() - >(stdin,stdout,stderr)
os.popen4() - >(stdin,stdout_and_stderr)
我建议使用subprocess
具有这些功能所具有的所有功能的模块.
popen2不捕获标准错误,popen3确实捕获标准错误并为其提供唯一的文件句柄.最后,popen4捕获标准错误,但将其包含在与标准输出相同的文件对象中.