当前位置: 首页 > 面试题库 >

os.walk,无需深入研究以下目录

段宏毅
2023-03-14
问题内容

如何限制os.walk返回提供的目录中的文件?

def _dir_list(self, dir_name, whitelist):
    outputList = []
    for root, dirs, files in os.walk(dir_name):
        for f in files:
            if os.path.splitext(f)[1] in whitelist:
                outputList.append(os.path.join(root, f))
            else:
                self._email_to_("ignore")
    return outputList

问题答案:

使用walklevel功能。

import os

def walklevel(some_dir, level=1):
    some_dir = some_dir.rstrip(os.path.sep)
    assert os.path.isdir(some_dir)
    num_sep = some_dir.count(os.path.sep)
    for root, dirs, files in os.walk(some_dir):
        yield root, dirs, files
        num_sep_this = root.count(os.path.sep)
        if num_sep + level <= num_sep_this:
            del dirs[:]

它的工作方式与相似os.walk,但是您可以向其传递一个level参数,该参数指示递归的深度。



 类似资料:
  • 本文向大家介绍C#中foreach语句深入研究,包括了C#中foreach语句深入研究的使用技巧和注意事项,需要的朋友参考一下 1、概述 本文通过手动实现迭代器来了解foreach语句的本质。 2、使用foreach语句遍历集合 在C#中,使用foreach语句来遍历集合。foreach语句是微软提供的语法糖,使用它可以简化C#内置迭代器的使用复杂性。编译foreach语句,会生成调用GetEnu

  • 虚拟主机部分的代码在Apache 1.3中进行了完全的重写。本文档试图详细解释Apache在接受到请求后如何确定使用哪一个虚拟主机进行伺服。在新的NameVirtualHost指令的帮助下,虚拟主机的配置比1.3版以前更加简单和安全。 如果您只是想让它能够工作而不愿意进行深入理解,这里有一些示例。 解析配置文件 在<VirtualHost>配置段外有一个主服务器(main_server)段中包含着

  • 问题内容: 我有一个包含的字符串变量 字符串不包含空格。我想编写一个仅打印包含(az)的单词的正则表达式,我尝试了一个简单的正则表达式 match对象仅包含单词,而单词不匹配。 使用时,我可以同时获得和。 我的问题是为什么我们不能这样做? 如何处理? 问题答案: 在字符串documenation中找到 一次 模式: 扫描字符串以查找正则表达式模式产生匹配项的位置,然后返回相应的MatchObjec

  •   看问的人多,呢就发个文,我一般不归纳记问题,所以可能不是那么全,按印象写一下。   笔试:挺简单,三道编程一道gcd模板,一道合并两个升序数组,还有一道忘了,反正都是leetcode简单难度应该。   一面问的多,我回答的很全所以答了一个小时左右: 数据库有哪些范式 java的垃圾回收机制 java的gc函数 java反射机制 java hashmap jdbc中statement和prepa

  • 想找一个方向深入研究一下,最好是有价值的值得深入研究的

  • 本文向大家介绍Thinkphp中Create方法深入探究,包括了Thinkphp中Create方法深入探究的使用技巧和注意事项,需要的朋友参考一下 由于工作原因在thinkPHP的create()方法上遇到了问题,所以跟踪了create(),从而进一步探究了create()方法。 原来create()方法原来有两个参数,第一个参数就是众所周知的数据参数,第二个是隐藏的$type参数,那么这个参数用