os.popen() 方法之间有什么区别?
我在查看Python的文档时,发现有4到5种不同版本的popen(),比如os.popen()、os.popen2()等等。
除了有些版本包含stderr(错误输出),而有些则不包含之外,它们之间还有什么区别呢?在什么情况下应该使用每一种?文档里并没有很好地解释这些。
3 个回答
10
popen2 这个函数不能捕捉到标准错误信息,而 popen3 可以捕捉到标准错误信息,并且为它提供了一个独立的文件句柄。最后,popen4 也能捕捉标准错误信息,但它把标准错误和标准输出放在同一个文件对象里。
13
我建议使用 subprocess
模块,因为它拥有这些函数的所有功能,还有更多其他的功能。
16
Jason说得对。为了让大家更容易理解,下面是一个简单的总结:
- os.popen() -> 只获取输出
- os.popen2() -> 获取输入和输出
- os.popen3() -> 获取输入、输出和错误信息
- os.popen4() -> 获取输入,以及输出和错误信息一起