[issue11377] Deprecate (remove?) platform.popen()

STINNER Victor report at bugs.python.org
Wed Mar 2 23:19:59 CET 2011


STINNER Victor <victor.stinner at haypocalc.com> added the comment:

os.popen() is deprecated since Python 2.6 ("Use the subprocess module.") and it is no more documented in Python 3. The following documentation explains how to replace os.popen() by subprocess:

http://docs.python.org/py3k/library/subprocess.html#replacing-os-popen-os-popen2-os-popen3

> Does it prevent a shell window from opening on Windows ?

Yes, but only if shell=True.

> Does subprocess.Popen() use the system's PATH for finding the
executable ?

Yes. The subprocess module calls os.get_exec_path() which reads PATH environment variable.

> Since it's a documented API, we could replace it with an
> implementation that uses subprocess.Popen(),

platform_popen.patch patchs platform.popen() to reuse os.popen() (which uses subprocess). It adds also tests (there was no test for platform.popen)

> but not remove it.

Can't we at deprecate platform.popen in favor of subprocess, with a documentation to explain how to port code to subprocess?

My patch doesn't touch platform documentation.

--

os.popen() does still exist in Python 3.2, but it is no more documented. Its documentation should be fixed or the function should be removed.

----------
keywords: +patch
Added file: http://bugs.python.org/file20982/platform_popen.patch

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue11377>
_______________________________________


More information about the Python-bugs-list mailing list