[Python-Dev] subprocess shell=True on Windows doesn't escape ^ character

Brian Curtin brian at python.org
Thu Jun 12 06:27:23 CEST 2014


On Wed, Jun 11, 2014 at 9:43 PM, Ethan Furman <ethan at stoneleaf.us> wrote:
> On 06/11/2014 07:12 PM, Chris Angelico wrote:
>>
>> On Thu, Jun 12, 2014 at 12:07 PM, Chris Angelico <rosuav at gmail.com> wrote:
>>>
>>> ISTM what you want is not shell=True, but a separate function that
>>> follows the system policy for translating a command name into a
>>> path-to-binary. That's something that, AFAIK, doesn't currently exist
>>> in the Python 2 stdlib, but Python 3 has shutil.which(). If there's a
>>> PyPI backport of that for Py2, you should be able to use that to
>>> figure out the command name, and then avoid shell=False.
>>
>>
>> Huh. Next time, Chris, search the web before you post. Via a
>> StackOverflow post, learned about distutils.spawn.find_executable().
>
>
> --> import sys
> --> sys.executable
> '/usr/bin/python'

For finding the Python executable, yes, but the discussion and example
are about a 2.x version of shutil.which


More information about the Python-Dev mailing list