【问题标题】:What's the difference between all of the os.popen() methods?所有 os.popen() 方法之间有什么区别?
【发布时间】:2010-09-21 12:06:03
【问题描述】:

我查看了Python documentation,发现有 4-5 个不同版本的 popen(),例如os.popen()、os.popen2()等

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

【问题讨论】:

    标签: python subprocess popen


    【解决方案1】:

    杰森说得对。用一种更容易理解的方式进行总结:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-27
          • 2014-11-15
          • 2011-05-24
          • 1970-01-01
          • 2021-06-17
          • 1970-01-01
          相关资源
          最近更新 更多