gpt4 book ai didi

python : Directory bottom level cap

转载 作者:行者123 更新时间:2023-12-01 05:37:34 25 4
gpt4 key购买 nike

这是我的代码,它遍历目录并删除所有找到的 jpg 图像。

我想做的是设置目录的底层上限。 (包含级别之前的文件夹,排除级别之后的文件夹)。

当我想设置顶级上限(跳过前两个级别)时,它效果很好:islice(2,2,None),但不适用于底部上限(例如级别 2) ): islice(0,2,无)。无论设置了停止,它都包含以下所有目录。

import os 
from itertools import islice

def drop_n_elements(start,stop,iterable):
next(islice(iterable, start, stop, None))

dir = r'test'

iterable = os.walk(dir)
drop_n_elements(0, 2, iterable)

for root, dirs, files in iterable:
for name in files:
if name.endswith(("jpg")):
os.remove(os.path.join(root, name))

最佳答案

您只是在函数中执行 next 操作,因此它会移动到 iterable 的下一个位置,但不会返回 islice。这就是为什么它适用于第一种情况但不适用于第二种情况。您需要在函数中执行此操作:

def drop_n_elements(start, stop, iterable):
return itertools.islice(iterable, start, stop)

然后,不只是调用该函数,而是分配其结果:

iterable = drop_n_elements(0, 2, iterable)

您也不需要在 islice 中使用 None,因为 step 是可选的,但这不会导致任何问题。

关于 python : Directory bottom level cap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18574722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com