STINNER Victor <victor.stin...@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 <rep...@bugs.python.org>
<http://bugs.python.org/issue11377>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to