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

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

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

    1. <tfoot id='PkOxk'></tfoot>
    2. <legend id='PkOxk'><style id='PkOxk'><dir id='PkOxk'><q id='PkOxk'></q></dir></style></legend>
    3. Python 子进程 Popen:为什么会出现“ls *.txt"?不行?

      时间:2023-07-22
        <bdo id='JlTZN'></bdo><ul id='JlTZN'></ul>
        1. <tfoot id='JlTZN'></tfoot>

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

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

                <legend id='JlTZN'><style id='JlTZN'><dir id='JlTZN'><q id='JlTZN'></q></dir></style></legend>
                  <tbody id='JlTZN'></tbody>
                本文介绍了Python 子进程 Popen:为什么会出现“ls *.txt"?不行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我正在查看这个问题.

                就我而言,我想做一个:

                In my case, I want to do a :

                import subprocess
                p = subprocess.Popen(['ls', 'folder/*.txt'], stdout=subprocess.PIPE, 
                                                 stderr=subprocess.PIPE)
                
                out, err = p.communicate()
                

                现在我可以在命令行上检查执行ls 文件夹/*.txt"是否有效,因为该文件夹有许多 .txt 文件.

                Now I can check on the commandline that doing a "ls folder/*.txt" works, as the folder has many .txt files.

                但在 Python (2.6) 中我得到:

                But in Python (2.6) I get:

                ls: 无法访问 * : 没有这样的文件或目录

                我尝试过这样做:r'文件夹/*.txt'r"文件夹/*.txt"r'文件夹/\*.txt'和其他变体,但似乎 Popen 根本不喜欢 * 字符.

                I have tried doing: r'folder/*.txt' r"folder/*.txt" r'folder/\*.txt' and other variations, but it seems Popen does not like the * character at all.

                还有其他方法可以逃脱*吗?

                Is there any other way to escape *?

                推荐答案

                *.txt会被你的shell自动扩展成file1.txt file2.txt ....如果引用*.txt,则不起作用:

                *.txt is expanded by your shell into file1.txt file2.txt ... automatically. If you quote *.txt, it doesn't work:

                [~] ls "*.py"                                                                  
                ls: cannot access *.py: No such file or directory
                [~] ls *.py                                                                    
                file1.py  file2.py file3.py
                

                如果您想获取与您的模式匹配的文件,请使用 glob:

                If you want to get files that match your pattern, use glob:

                >>> import glob
                >>> glob.glob('/etc/r*.conf')
                ['/etc/request-key.conf', '/etc/resolv.conf', '/etc/rc.conf']
                

                这篇关于Python 子进程 Popen:为什么会出现“ls *.txt"?不行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:用于 Windows 的 python os.mkfifo() 下一篇:合并 Python 脚本的子进程的 stdout 和 stderr,同时保持它们可区分

                相关文章

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

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

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

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