title: Why does Popen.communicate() return b'hi\n' instead of 'hi'?
body: <p>Can someone explain why the result I want, "hi", is preceded with a letter 'b' and followed with a newline?  </p>
  
  <p>I am using <strong>Python 3.3</strong></p>
  
  <pre><code>&gt;&gt;&gt; import subprocess
  &gt;&gt;&gt; print(subprocess.Popen("echo hi", shell=True,
                             stdout=subprocess.PIPE).communicate()[0])
  b'hi\n'
  </code></pre>
  
  <p>This extra 'b' does not appear if I run it with python 2.7</p>