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

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

      1. Python的子进程不允许使用shell = True进行进程替换?

        时间:2023-07-22

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

                <bdo id='oql4g'></bdo><ul id='oql4g'></ul>

                  <tbody id='oql4g'></tbody>
                <tfoot id='oql4g'></tfoot>

                1. <legend id='oql4g'><style id='oql4g'><dir id='oql4g'><q id='oql4g'></q></dir></style></legend>

                2. <i id='oql4g'><tr id='oql4g'><dt id='oql4g'><q id='oql4g'><span id='oql4g'><b id='oql4g'><form id='oql4g'><ins id='oql4g'></ins><ul id='oql4g'></ul><sub id='oql4g'></sub></form><legend id='oql4g'></legend><bdo id='oql4g'><pre id='oql4g'><center id='oql4g'></center></pre></bdo></b><th id='oql4g'></th></span></q></dt></tr></i><div id='oql4g'><tfoot id='oql4g'></tfoot><dl id='oql4g'><fieldset id='oql4g'></fieldset></dl></div>
                  本文介绍了Python的子进程不允许使用shell = True进行进程替换?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  这是一个在 Bash 中运行良好的进程替换的玩具示例:

                  Here is a toy example of process substitution that works fine in Bash:

                  $ wc -l <(pwd)
                  1 /proc/self/fd/11
                  

                  那么,为什么在 shell=True 的 Python 子进程中调用同一命令时会出现语法错误?

                  So why does the same command give a syntax error when invoked from Python's subprocess with shell=True?

                  >>> subprocess.check_call('wc -l <(pwd)', shell=True)
                  /bin/sh: 1: Syntax error: "(" unexpected
                  Traceback (most recent call last):
                    File "<stdin>", line 1, in <module>
                    File "/path/to/my/python/lib/python3.5/subprocess.py", line 581, in check_call
                      raise CalledProcessError(retcode, cmd)
                  subprocess.CalledProcessError: Command 'wc -l <(pwd)' returned non-zero exit status 2
                  

                  推荐答案

                  /bin/sh: 1: 语法错误:("意外

                  /bin/sh: 1: Syntax error: "(" unexpected

                  你有一个 bashism.根据 POSIX 是无效的,这是 /bin/sh 实现的.

                  You have a bashism. It is not valid according to POSIX, which is what /bin/sh implements.

                  这篇关于Python的子进程不允许使用shell = True进行进程替换?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:保持子进程活着并继续给它命令?Python 下一篇:如何从 Python subprocess.check_output() 捕获异常输出?

                  相关文章

                    <bdo id='MHts2'></bdo><ul id='MHts2'></ul>

                3. <small id='MHts2'></small><noframes id='MHts2'>

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