【发布时间】:2013-03-18 04:55:59
【问题描述】:
我想在多个条件下执行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,您可以轻松实现纯 Pythonish walk,无需外部子处理 -
我遇到了同样的问题,即使没有排除隐藏文件。
-
你得到什么错误?您应该改用
-print0和.split('\0')。
标签: python subprocess popen