title: subprocess.Popen not escaping command line arguments properly?
body: <p>I am trying to call the following curl command with python:</p>
  
  <pre><code>curl -k -F file=@something.zip -F "data={\\"title\\":\\"Another App\\"}" -Lu usr:pwd https://build.phonegap.com/api/v0/apps
  </code></pre>
  
  <p>For it to work, I've found that the json I'm passing in data needs to be escaped with backslashes.</p>
  
  <p>I can call this command with...</p>
  
  <pre><code>os.system(curl -k -F file=@something.zip -F "data={\\"title\\":\\"Another App\\"}" -Lu usr:pwd https://build.phonegap.com/api/v0/apps)
  </code></pre>
  
  <p>and it works. </p>
  
  <p>However, when I try to use the subprocess module like this...</p>
  
  <pre><code>s = 'curl -k -F file=@something.zip -F "data={\\"title\\":\\"Another App\\"}" -Lu usr:pwd https://build.phonegap.com/api/v0/apps'
  push = subprocess.Popen(s.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  output, errors = push.communicate()
  print output
  </code></pre>
  
  <p>...the curl doesn't work and I get an error from the api I'm using that I'm using invalid parameters, which I've gotten in the past when I've used improperly escaped json.</p>
  
  <p>What is going on here? Why can I call this command with os.system and not subprocess.Popen? So far my hypothesis is that the split is messing up something in the string, but I didn't find anything that looked wrong when I check the output of <code>s.split()</code>.</p>