Nate wrote:
Thanks for your response. Related to this talk about shells, maybe you
could point me towards a resource where I could read about how windows
commands are processed w/w/o shells?  I guess I assumed all subprocess
commands were intepreted by the same thing, cmd.exe., or perhaps the
shell.

Just a comment here: on Windows, you almost *never* need to specify
shell=True. Certainly, far less than most people seem to think you
need to. The only things which certainly need shell to be set True
are those which don't really exist as programs in their own right:
dir, copy etc. You don't need to set it for batch files (altho' this
does seem to vary slightly between versions) and you certainly don't
need to set it for console programs in general, such as Python.


<code>
import subprocess

subprocess.call (["dir"], shell=False)
subprocess.call (["dir"], shell=True)

with open ("test.bat", "w") as f:
 f.write ("echo hello")

subprocess.call (["test.bat"], shell=False)

subprocess.call (["python", "-c", "import sys; print sys.executable"], 
shell=False)

</code>

This all works as expected using Python 2.6.1 on WinXP SP3

TJG
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to