title: Communicate multiple times with a process without breaking the pipe?
body: <p>It's not the first time I'm having this problem, and it's really bugging me.
  Whenever I open a pipe using the Python <code>subprocess</code> module, I can only <code>communicate</code> with it once, as the documentation specifies: <code>Read data from stdout and stderr, until end-of-file is reached</code></p>
  
  <pre><code>proc = sub.Popen("psql -h darwin -d main_db".split(),stdin=sub.PIPE,stdout=sub.PIPE)
  print proc.communicate("select a,b,result from experiment_1412;\n")[0]
  print proc.communicate("select theta,zeta,result from experiment_2099\n")[0]
  </code></pre>
  
  <p>The problem here is that the second time, Python isn't happy. Indeed, he decided to close the file after the first communicate:</p>
  
  <pre><code>Traceback (most recent call last):
  File "a.py", line 30, in &lt;module&gt;
      print proc.communicate("select theta,zeta,result from experiment_2099\n")[0]
  File "/usr/lib64/python2.5/subprocess.py", line 667, in communicate
      return self._communicate(input)
  File "/usr/lib64/python2.5/subprocess.py", line 1124, in _communicate
       self.stdin.flush()
  ValueError: I/O operation on closed file
  </code></pre>
  
  <p>Are multiple communications allowed?</p>