如果路径包含"release"和"arm-linux",我需要阻止os.walk进一步向下移动.我在不同级别的目录中有一堆这些.所以我不能简单地决定水平.到目前为止,我有以下内容,它不必要地潜入'arm-linux'中的目录.
def main(argv):
for root, dirs, files in os.walk("."):
path = root.split(os.sep)
if "release" and "arm-linux" in path:
print(os.path.abspath(root))
getSharedLib(argv)
Run Code Online (Sandbox Code Playgroud)
[ 更新 ]这是我的解决方案
def main(argv):
for root, dirs, files in os.walk("."):
path = root.split(os.sep)
if "release" in path and "arm-linux" in path:
print(os.path.abspath(root))
getSharedLib(argv)
del dirs[:]
Run Code Online (Sandbox Code Playgroud)
从文档中
当topdown为True时,调用者可以就地修改dirnames列表(可能使用
del或切片赋值),并且walk()只会递归到名称保留在dirnames中的子目录中;
请注意,默认情况下topdown为True.
编辑
要删除所有元素dirs,您需要类似的东西del dirs[:].这将删除dirs代码中引用的列表对象的所有元素,但在代码中由另一个名称引用os.walk.
只是使用del dirs将停止dirs在您的代码中引用列表,但不会对os.walk引用做任何事情.同样dirs = []会替换dirs代码中引用的内容,但不会影响os.walk代码.
| 归档时间: |
|
| 查看次数: |
179 次 |
| 最近记录: |