zoukankan      html  css  js  c++  java
  • python下递归遍历目录和文件

    方法一:递归调用:

    import os  
      
    def dirlist(path, allfile):  
        filelist =  os.listdir(path)  
      
        for filename in filelist:  
            filepath = os.path.join(path, filename)  
            if os.path.isdir(filepath):  
                dirlist(filepath, allfile)  
            else:  
                allfile.append(filepath)  
        return allfile  
      
    print dirlist("/home/yuan/testdir", [])   
    from glob import glob
    from os import path
    def dirlist(parent, allfile):
        pattern = path.join(parent, '*', '*.wav')
        return glob(pattern)


    方法二:

    os.walk()

    该函数式穿件一个生成器对象来遍历整棵目录树。
    top指定目录的顶级,而topdown是一个布尔值,用于指示由上而下(默认值)还是由下而上来遍历目录。返回的生成器将生成元组(dirpath,dirnames,filenames),其中dirpath是一个字符串,包含通向目录的路径,dirnames是dirpath中所有子目录的一个列表,而filename是dirpath中文件的一个列表,不包括目录。oneerror参数是一个接受单个参数的函数。
             如果处理期间出现任何错误,将使用os.error的是咧来调用此函数。默认行为时忽略错误。如果由上而下地遍历目录,修改dirnames将影响到遍历过程。

    #!/user/bin/python  
    #!conding=utf8  
      
    import os  
    g = os.walk("/home/yuan/testdir")  
      
      
    for path,d,filelist in g:  
        print d;  
        for filename in filelist:  
            print os.path.join(path, filename)  
    关注公众号 海量干货等你
  • 相关阅读:
    IDEA最常用快捷键汇总+快速写出Main函数
    设计模式之代理模式
    Java多线程中join、yield、sleep方法详解
    git基础命令详解
    用友网络科技Java高级开发面试题(2019)
    Java内部类超详细总结(含代码示例)
    构造器中绝对绝对不能调用可被覆盖的方法
    写给小白看的Git的安装配置与使用
    Vue学习笔记5--前端工程化
    Vue学习笔记4--vue-router路由
  • 原文地址:https://www.cnblogs.com/sowhat1412/p/12734367.html
Copyright © 2011-2022 走看看