我想在多个条件下执行 find
命令,例如:查找 foo ,但排除隐藏文件:
find . -type f \( -iname '*foo*' ! -name '.*' \)
Python代码:
import subprocess
cmd = ["find", ".", "-type", "f", "(", "-iname", "*foo*", "!", "-name", ".*", ")"]
sp = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print sp.communicate()[0].split()
有人可以解释一下我错过了什么吗?谢谢!
os.path.walk
你可以轻松实现一个纯Python风格的遍历,无需外部子进程。 - Jakub M.-print0
和.split('\0')
。 - jfs