7

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

除了有些包含stderr而有些不包含这一事实之外,它们之间有什么区别以及您什么时候使用它们?文档并没有很好地解释它。

4

3 回答 3

14

杰森说得对。以一种更容易看到的方式进行总结:

  • os.popen() -> 标准输出
  • os.popen2() -> (标准输入,标准输出)
  • os.popen3() -> (标准输入、标准输出、标准错误)
  • os.popen4() -> (stdin, stdout_and_stderr)
于 2008-11-09T13:06:46.017 回答
13

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

于 2008-11-09T10:44:40.047 回答
10

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

于 2008-11-09T08:53:58.803 回答