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