[issue8632] subprocess doesn't handle Windows built-in commands as os.system() does

Alex Quinn report at bugs.python.org
Thu May 6 00:04:25 CEST 2010


New submission from Alex Quinn <aq2009 at alexquinn.org>:

The documentation says subprocess replaces os.system().  However, subprocess does not handle built-in Windows shell commands as os.system() does.

Works:
- os.system("dir /w")
- subprocess.Popen("cmd /c dir /w", stdout=subprocess.PIPE).communicate()[0]

Does NOT work:
- Popen("dir /w", stdout=PIPE).communicate()[0]
- Popen(["dir", "/w"], stdout=PIPE).communicate()[0]

Examples:
s:\d>python31
Python 3.1.2 (r312:79149, Mar 21 2010, 00:41:52) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from subprocess import Popen, PIPE
>>> Popen(["cmd", "/c", "dir", "/w"], stdout=PIPE).communicate()[0]
   .....  (WORKED)
>>> Popen(["dir", "/w"], stdout=PIPE).communicate()[0]
dir: cannot access /w: No such file or directory
b''       (DIDN'T WORK)
>>>

----------
components: IO, Library (Lib), Windows
messages: 105091
nosy: Alex Quinn
priority: normal
severity: normal
status: open
title: subprocess doesn't handle Windows built-in commands as os.system() does
type: behavior
versions: Python 3.1

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


More information about the Python-bugs-list mailing list