[New-bugs-announce] [issue23862] subprocess popen arguments using double quotes
rengine
report at bugs.python.org
Fri Apr 3 21:04:53 CEST 2015
New submission from rengine:
Using Python 2.7.9
Noticed when I run a subprocess Popen with an argument containing double quotes, it will have a different affect depending on my operating system.
In Linux, if I run ./runme.py, it will call runme.sh which will append someargs.txt correctly without escaped quotations
In Windows, if I run ./runme.py, it will call runme.bat which will append someargs.txt with escaped quotations
Also in Windows, if I run runme.bat with an argument containing quotations it will append someargs.txt correctly without escaped quotations so this problem seems to be stemming from Python.
===================================== runme.py
#!/usr/bin/python
import sys
import subprocess
import shlex
# works on Linux:
#command_line = "./runme.sh --include=\"check\""
# fails on Windows:
command_line = "runme.bat --include=\"check\""
#command_line = "runme.bat --include=\"check\""
arg = shlex.shlex(command_line)
arg.quotes = '"'
arg.whitespace_split = True
arg.commenters = ''
command_line_args = list(arg)
print command_line_args
command_line_process = subprocess.Popen(
command_line_args,
universal_newlines=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
line = ""
while True:
line = command_line_process.stdout.readline()
if line:
print line
else:
break
===================================== runme.bat
echo %*
echo %* >> someargs.txt
===================================== runme.sh
#!/bin/bash
echo $@
echo $@ >> someargs.txt
----------
messages: 240026
nosy: rengine
priority: normal
severity: normal
status: open
title: subprocess popen arguments using double quotes
type: behavior
versions: Python 2.7
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue23862>
_______________________________________
More information about the New-bugs-announce
mailing list