title: subprocess.Popen.communicate return a tuple unexceptedly
body: <p>I am practicing the  subprocess operations with the following commands:</p>
  
  <pre><code>In [1]: import subprocess
  In [3]: cp = subprocess.Popen("cat /etc/group", shell=True, stdout=subprocess.PIPE, stderr=sub
     ...: process.PIPE).communicate()
  In [4]: cp
  Out[4]: 
  (b'root:x:0:\nbin:x:1:\ndaemon:x:2:\nsys:x:3:\nadm:x:4:\ntty:x:5:\ndisk:x:6:\nlp:x:7:\nmem:x:8:\nkmem:x:9:\nwheel:x:10:\ncdrom:x:11:\nmail:x:12:postfix\nman:x:15:\ndialout:x:18:\nfloppy:x:19:\ngames:x:20:\ntape:x:30:\nvideo:x:39:\nftp:x:50:\nlock:x:54:\naudio:x:63:\nnobody:x:99:\nusers:x:100:\nutmp:x:22:\nutempter:x:35:\nssh_keys:x:999:\ninput:x:998:\nsystemd-journal:x:190:\nsystemd-network:x:192:\ndbus:x:81:\npolkitd:x:997:\npostdrop:x:90:\npostfix:x:89:\nchrony:x:996:\nsshd:x:74:\nntp:x:38:\ntcpdump:x:72:\nnscd:x:28:\nnginx:x:995:\nstapusr:x:156:\nstapsys:x:157:\nstapdev:x:158:\ntss:x:59:\nmysql:x:27:\ntest:x:1000:\nscreen:x:84:\n',
   b'')
  </code></pre>
  
  <p>When I tried to decode it:</p>
  
  <pre><code>In [5]: out = cp.stdout.read().decode("utf-8")
  ---------------------------------------------------------------------------
  AttributeError                            Traceback (most recent call last)
  &lt;ipython-input-5-4f20648dd0bc&gt; in &lt;module&gt;()
  ----&gt; 1 out = cp.stdout.read().decode("utf-8")
  
  AttributeError: 'tuple' object has no attribute 'stdout'
  </code></pre>
  
  <p>Tried alternatively</p>
  
  <pre><code>In [6]: out = cp.decode("utf-8")
  ---------------------------------------------------------------------------
  AttributeError                            Traceback (most recent call last)
  &lt;ipython-input-6-853060f6d163&gt; in &lt;module&gt;()
  ----&gt; 1 out = cp.decode("utf-8")
  
  AttributeError: 'tuple' object has no attribute 'decode'
  </code></pre>
  
  <p>How could it return a tuple?  I follow step by step the answer <a href="https://stackoverflow.com/questions/52355562/hold-the-output-of-subprocess-popen-with-a-arbitrary-varible">python - Hold the output of subprocess.Popen with a arbitrary varible - Stack Overflow</a></p>