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

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

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

      • <bdo id='stMbP'></bdo><ul id='stMbP'></ul>

      Python:执行 shell 命令

      时间:2023-07-21

        <tfoot id='CvNKR'></tfoot>

          <legend id='CvNKR'><style id='CvNKR'><dir id='CvNKR'><q id='CvNKR'></q></dir></style></legend>
            <bdo id='CvNKR'></bdo><ul id='CvNKR'></ul>

          • <small id='CvNKR'></small><noframes id='CvNKR'>

              <tbody id='CvNKR'></tbody>

              1. <i id='CvNKR'><tr id='CvNKR'><dt id='CvNKR'><q id='CvNKR'><span id='CvNKR'><b id='CvNKR'><form id='CvNKR'><ins id='CvNKR'></ins><ul id='CvNKR'></ul><sub id='CvNKR'></sub></form><legend id='CvNKR'></legend><bdo id='CvNKR'><pre id='CvNKR'><center id='CvNKR'></center></pre></bdo></b><th id='CvNKR'></th></span></q></dt></tr></i><div id='CvNKR'><tfoot id='CvNKR'></tfoot><dl id='CvNKR'><fieldset id='CvNKR'></fieldset></dl></div>
                本文介绍了Python:执行 shell 命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我需要这样做:

                paste file1 file2 file3 > result
                

                我的 python 脚本中有以下内容:

                I have the following in my python script:

                from subprocess import call
                
                // other code here.
                
                // Here is how I call the shell command
                
                call ["paste", "file1", "file2", "file3", ">", "result"])
                

                很遗憾,我收到了这个错误:

                Unfortunately I get this error:

                paste: >: 没有这样的文件或目录.

                对此的任何帮助都会很棒!

                Any help with this will be great!

                推荐答案

                有两种方法.

                1. 使用 shell=True:

                call("paste file1 file2 file3 >result", shell=True)
                

                重定向,>,是一个shell特性.因此,您只能在使用 shell 时访问它:shell=True.

                Redirection, >, is a shell feature. Consequently, you can only access it when using a shell: shell=True.

                保持shell=False,使用python进行重定向:

                Keep shell=False and use python to perform the redirection:

                with open('results', 'w') as f:
                    subprocess.call(["paste", "file1", "file2", "file3"], stdout=f)
                

                第二个通常是首选,因为它避免了 shell 的变幻莫测.

                The second is normally preferred as it avoids the vagaries of the shell.

                不使用 shell 时,> 只是命令行上的另一个字符.因此,请考虑错误消息:

                When the shell is not used, > is just another character on the command line. Thus, consider the error message:

                paste: >: No such file or directory. 
                

                这表明 paste 已收到 > 作为参数,并试图打开该名称的文件.不存在这样的文件.因此消息.

                This indicates that paste had received > as an argument and was trying to open a file by that name. No such file exists. Therefore the message.

                作为 shell 命令行,可以使用该名称创建文件:

                As the shell command line, one can create a file by that name:

                touch '>'
                

                如果存在这样的文件,当 subprocess 使用 shell=False 调用 paste 时,会使用该文件作为输入.

                If such a file had existed, paste, when called by subprocess with shell=False, would have used that file for input.

                这篇关于Python:执行 shell 命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:使用 subprocess.Popen 的 Python 内存分配错误 下一篇:从 Python 执行子进程而不打开 Windows 命令提示符

                相关文章

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

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

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

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