我在看this的問題。Python子流程Popen:爲什麼「ls * .txt」不起作用?
在我的情況,我想做一個:
import subprocess
p = subprocess.Popen(['ls', 'folder/*.txt'], stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
out, err = p.communicate()
現在我可以檢查上做的「ls文件夾/ * TXT。」工作的命令行,作爲文件夾有很多.txt文件。
但是在Python(2.6),我得到:
LS:不能訪問*:
我已經試過沒有這樣的文件或目錄做: r'folder/\*.txt'
r"folder/\*.txt"
r'folder/\\*.txt'
和其他變化,但它似乎Popen
不喜歡*
字符。
有沒有別的辦法可以逃脫*
?
Escape it?我想你想要的是首先展開「*」,然後運行ls命令。閱讀「外殼擴展」。 –