zoukankan      html  css  js  c++  java
  • python中os.listdir()和os.walk()的使用

    1.  os.listdir(path):只能返回当前path路径下的文件和文件夹,不包含子目录中的内容。

    2.  os.walk(top, topdown=True, onerror=None, followlinks=False)

    参数:

    • top 是你所要遍历的目录的地址
    • topdown 为真,则优先遍历top目录,否则优先遍历top的子目录 (默认为True)
    • onerror 需要一个 callable 对象,当walk需要异常时,会调用
    • followlinks 如果为真,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录 (默认为False)

    os.walk 的返回值是一个生成器(generator),也就是说我们需要不断的遍历它,来获得所有的内容。

    每次遍历的对象都是返回的是一个三元组(root,dirs,files)

    • root 所指的是当前正在遍历的这个文件夹的本身的地址
    • dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
    • files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)

    如果topdown 参数为真,walk 会遍历top文件夹,与top文件夹中每一个子目录

    练习:编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出路径。

    import os
    import re
    
    
    def all_path(dirname, file_name):
        
        for maindir, subdir, file_name_list in os.walk(dirname):
            for f in file_name_list:
                apath = os.path.join(maindir, f)
                if re.search(file_name, f):        
                    print(apath)
    
    
    if __name__ == '__main__':
        
        path_name = input("请输入要查询的目录:") # 不用区分大小写
        file_name = input("请输入要查询的文件名称(可模糊查询):")
        all_path(path_name, file_name)
    作者:David-lcw
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    使用C#调用C++类库
    C# IntPtr类型
    C# 调用C++ dll string类型返回
    C# try、catch、finally语句
    C语言 char *、char []、const char *、string的区别与相互转换
    C# 字符串string与char数组互转!
    C#如何调用C++(进阶篇)
    Springboot通过过滤器实现对请求头的修改
    【spring事务】
    命令行参数库:McMaster.Extensions.CommandLineUtils【转】
  • 原文地址:https://www.cnblogs.com/david-lcw/p/10051004.html
Copyright © 2011-2022 走看看