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

时间:2008-11-09 08:50:12

标签: python subprocess popen

我正在查看Python documentation并看到有4-5种不同版本的popen(),例如os.popen(),os.popen2()等

除了一些包含 stderr 而其他人没有包含 stderr 这一事实外,它们之间有什么区别?您何时使用每一个?文档并没有真正解释得很清楚。

3 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:13)

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

答案 2 :(得分:10)

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