Python subprocess call with arguments having multiple quotations
Question: I use the following command in bash to execute a Python script.

    
    
    python myfile.py -c "'USA'" -g "'CA'" -0 "'2011-10-13'" -1 "'2011-10-27'"
    

I'm writing a Python script to wrap around this one. I'm currently having to
use os.system (I know, it's crappy) since I can't figure out how to get the
quotes to work with subprocess.Popen. The inner single quotes must be
maintained in the string variables that are passed in.

Can someone please help me determine how to format the first variable passed
to subprocess.Popen.


Answer: You don't need to escape the values. To the process everything is passed as a
string.

You can use the shlex module to figure out what is the best way to pass
variables:

    
    
    import shlex
    shlex.split('python myfile.py -c "USA" -g "CA" -0 "2011-10-13" -1 "2011-10-27"') 
    ['python',
     'myfile.py',
     '-c',
     'USA',
     '-g',
     'CA',
     '-0',
     '2011-10-13',
     '-1',
     '2011-10-27']
    

