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 <[email protected]>
<http://bugs.python.org/issue23862>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com