• <bdo id='sXf2z'></bdo><ul id='sXf2z'></ul>
      <tfoot id='sXf2z'></tfoot>
      <legend id='sXf2z'><style id='sXf2z'><dir id='sXf2z'><q id='sXf2z'></q></dir></style></legend>

      <small id='sXf2z'></small><noframes id='sXf2z'>

        <i id='sXf2z'><tr id='sXf2z'><dt id='sXf2z'><q id='sXf2z'><span id='sXf2z'><b id='sXf2z'><form id='sXf2z'><ins id='sXf2z'></ins><ul id='sXf2z'></ul><sub id='sXf2z'></sub></form><legend id='sXf2z'></legend><bdo id='sXf2z'><pre id='sXf2z'><center id='sXf2z'></center></pre></bdo></b><th id='sXf2z'></th></span></q></dt></tr></i><div id='sXf2z'><tfoot id='sXf2z'></tfoot><dl id='sXf2z'><fieldset id='sXf2z'></fieldset></dl></div>
      1. 为什么 Popen.communicate() 返回 b'hi ' 而不是 'hi'?

        时间:2023-07-21
        • <small id='4aBUE'></small><noframes id='4aBUE'>

        • <i id='4aBUE'><tr id='4aBUE'><dt id='4aBUE'><q id='4aBUE'><span id='4aBUE'><b id='4aBUE'><form id='4aBUE'><ins id='4aBUE'></ins><ul id='4aBUE'></ul><sub id='4aBUE'></sub></form><legend id='4aBUE'></legend><bdo id='4aBUE'><pre id='4aBUE'><center id='4aBUE'></center></pre></bdo></b><th id='4aBUE'></th></span></q></dt></tr></i><div id='4aBUE'><tfoot id='4aBUE'></tfoot><dl id='4aBUE'><fieldset id='4aBUE'></fieldset></dl></div>

            <tfoot id='4aBUE'></tfoot>
              <bdo id='4aBUE'></bdo><ul id='4aBUE'></ul>
              <legend id='4aBUE'><style id='4aBUE'><dir id='4aBUE'><q id='4aBUE'></q></dir></style></legend>
                  <tbody id='4aBUE'></tbody>

                  本文介绍了为什么 Popen.communicate() 返回 b'hi ' 而不是 'hi'?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  有人能解释一下为什么我想要的结果hi"前面有一个字母b",后面有一个换行符吗?

                  Can someone explain why the result I want, "hi", is preceded with a letter 'b' and followed with a newline?

                  我正在使用 Python 3.3

                  >>> import subprocess
                  >>> print(subprocess.Popen("echo hi", shell=True,
                                             stdout=subprocess.PIPE).communicate()[0])
                  b'hi
                  '
                  

                  如果我使用 python 2.7 运行它,则不会出现这个额外的b"

                  This extra 'b' does not appear if I run it with python 2.7

                  推荐答案

                  echo 命令默认返回换行符

                  The echo command by default returns a newline character

                  比较一下:

                  print(subprocess.Popen("echo -n hi", 
                      shell=True, stdout=subprocess.PIPE).communicate()[0])
                  

                  字符串前面的b表示它是一个字节序列,相当于Python 2.6+中的普通字符串

                  As for the b preceding the string it indicates that it is a byte sequence which is equivalent to a normal string in Python 2.6+

                  http://docs.python.org/3/reference/lexical_analysis.html#literals

                  这篇关于为什么 Popen.communicate() 返回 b'hi ' 而不是 'hi'?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:无法使用子进程 [python] 向进程提供密码 下一篇:Python,Popen 和 select - 等待进程终止或超时

                  相关文章

                  <legend id='pQfgo'><style id='pQfgo'><dir id='pQfgo'><q id='pQfgo'></q></dir></style></legend>

                    1. <tfoot id='pQfgo'></tfoot>
                      <i id='pQfgo'><tr id='pQfgo'><dt id='pQfgo'><q id='pQfgo'><span id='pQfgo'><b id='pQfgo'><form id='pQfgo'><ins id='pQfgo'></ins><ul id='pQfgo'></ul><sub id='pQfgo'></sub></form><legend id='pQfgo'></legend><bdo id='pQfgo'><pre id='pQfgo'><center id='pQfgo'></center></pre></bdo></b><th id='pQfgo'></th></span></q></dt></tr></i><div id='pQfgo'><tfoot id='pQfgo'></tfoot><dl id='pQfgo'><fieldset id='pQfgo'></fieldset></dl></div>
                        <bdo id='pQfgo'></bdo><ul id='pQfgo'></ul>
                    2. <small id='pQfgo'></small><noframes id='pQfgo'>