小编kra*_*oti的帖子

os.popen在Python 2.6中是否真的被弃用了?

在线文档声明os.popen现已弃用.所有其他已弃用的函数都会适当地提高DeprecationWarning.例如:

>>> import os
>>> [c.close() for c in os.popen2('ps h -eo pid:1,command')]
__main__:1: DeprecationWarning: os.popen2 is deprecated.  Use the subprocess module.
[None, None]
Run Code Online (Sandbox Code Playgroud)

另一方面,函数os.popen以静默方式完成:

>>>len(list(os.popen('ps h -eo pid:1,command')))
202
Run Code Online (Sandbox Code Playgroud)

没有提出警告.在三种可能的情况中

  1. 文档和标准库对弃用的内容有不同的看法;
  2. 文档中有一个错误,os.popen并没有真正弃用;
  3. 标准库中存在错误,os.popen应该发出警告;

哪一个是正确的?

有关背景信息,请参阅我正在使用的Python:

>>> import sys
>>> print sys.version
2.6.2 (r262:71600, May 12 2009, 10:57:01) 
[GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu3)]
Run Code Online (Sandbox Code Playgroud)

os.popen的参数取自在Stack Overflow上的回复.

附录:感谢下面的 cobbal ,事实证明os.popen在Python 3.1中并没有被弃用.

python std deprecated

7
推荐指数
2
解决办法
6721
查看次数

标签 统计

deprecated ×1

python ×1

std ×1