zoukankan      html  css  js  c++  java
  • Python os.walk文件遍历

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

    可以得到一个三元tupple(dirpath, dirnames, filenames), 

    第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。

    dirpath 是一个string,代表目录的路径,

    dirnames 是一个list,包含了dirpath下所有子目录的名字。

    filenames 是一个list,包含了非目录文件的名字。

    这些名字不包含路径信息,如果需要得到全路径,需要使用os.path.join(dirpath, name).

    通过for循环自动完成递归枚举

    a

    import os
    
    for i in os.walk('c:'+os.sep+'ant'):
        print i

    输出:

    ('c:\ant', ['bin', 'docs', 'etc', 'lib', 'Project'], ['fetch.xml', 'get-m2.xml', 'INSTALL', 'KEYS', 'LICENSE', 'NOTICE', 'README', 'WHATSNEW'])
    ('c:\ant\bin', [], ['ant', 'ant.bat', 'ant.cmd', 'antenv.cmd', 'antRun', 'antRun.bat', 'antRun.pl', 'complete-ant-cmd.pl', 'envset.cmd', 'lcp.bat', 'runant.pl', 'runant.py', 'runrc.cmd'])
    ('c:\ant\docs', ['ant2', 'antlibs', 'images', 'manual', 'projects', 'slides', 'webtest'], ['antnews.html', 'ant_in_anger.html', 'ant_task_guidelines.html', 'appendix_e.pdf', 'breadcrumbs.js', 'bugs.html', 'bylaws.html', 'contributors.html', 'external.html', 'faq.html', 'favicon.ico', 'index.html', 'legal.html', 'LICENSE', 'license.html', 'mail.html', 'mission.html', 'nightlies.html', 'page.css', 'problems.html', 'projects.html', 'resources.html', 'svn.html'])
    ('c:\ant\docs\ant2', [], ['actionlist.html', 'features.html', 'FunctionalRequirements.html', 'original-specification.html', 'requested-features.html', 'requested-features.txt', 'VFS.txt'])````````````````````````````

    遍历文件夹并删除特定格式文件的示例

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import os
    def del_files(path):
        for root , dirs, files in os.walk(path):
            for name in files:
                if name.endswith(".tmp"):
                    os.remove(os.path.join(root, name))
      print ("Delete File: " + os.path.join(root, name))
    # test
    if __name__ == "__main__":
        path = '/tmp'
        del_files(path)

    通过for循环即可完成目录的递归

    #!/usr/bin/python
    # -*- coding: gbk -*-
      
    # os.walk()的使用  
    import os  
      
    # 枚举dirPath目录下的所有文件  
      
    def main():  
    #begin  
        fileDir = "F:" + os.sep + "aaa"     # 查找F:aaa 目录下    
        for root, dirs, files in os.walk(fileDir):  
        #begin  
            for dir in dirs:  
            #begin  
                print(os.path.join(root, dir))  
            #end  
            for file in files:  
            #begin  
                print(os.path.join(root, file))  
            #end  
        #end  
        os.system("pause")  
    #end  
      
    if __name__ == '__main__':  
    #begin  
        main()  
    #end  
  • 相关阅读:
    Leetcode: Insert Delete GetRandom O(1)
    Leetcode: Kth Smallest Element in a Sorted Matrix
    Leetcode: Combination Sum IV && Summary: The Key to Solve DP
    Leetcode: Wiggle Subsequence
    Leetcode: Guess Number Higher or Lower II
    Leetcode: Guess Number Higher or Lower
    Leetcode: Find K Pairs with Smallest Sums
    Leetcode: Super Pow
    Leetcode: Largest Divisible Subset
    Leetcode: Water and Jug Problem && Summary: GCD求法(辗转相除法 or Euclidean algorithm)
  • 原文地址:https://www.cnblogs.com/lincj/p/5617605.html
Copyright © 2011-2022 走看看