所有os.popen()方法之间有什么区别?

cry*_*ice 7 python subprocess popen

我正在查看Python文档,发现有4-5个不同版本的popen(),例如os.popen(),os.popen2()等.

除了一些包括stderr而另一些不包括stderr的事实之外,它们之间有什么区别以及何时使用每一个?文档并没有真正解释得很好.

Ned*_*der 14

杰森说得对.总结一下更容易看到的方式:

  • os.popen() - > stdout
  • os.popen2() - >(stdin,stdout)
  • os.popen3() - >(stdin,stdout,stderr)
  • os.popen4() - >(stdin,stdout_and_stderr)


J S*_*J S 13

我建议使用subprocess具有这些功能所具有的所有功能的模块.


Jas*_*oco 10

popen2不捕获标准错误,popen3确实捕获标准错误并为其提供唯一的文件句柄.最后,popen4捕获标准错误,但将其包含在与标准输出相同的文件对象中.