title: Use subprocess.communicate() to pipe stdin without waiting for process
body: <p>I need to launch a process and pipe a string in to stdin, which I am currently doing like this:</p>
  
  <pre><code>proc = subprocess.Popen(["MyCommandHere"], stdin=subprocess.PIPE)
  proc.communicate(input=bytes(my_str_input + "\n", "ascii"))
  </code></pre>
  
  <p>The problem is that when I use <code>subprocess.communicate()</code> it is a blocking call, waiting for the process to exit.  I do not want to wait.</p>
  
  <p>Is there some way to get <code>communicate()</code> to not block, or some other way to pipe my input?  I am asking about non-blocking writes, not non-blocking reads.</p>