zoukankan      html  css  js  c++  java
  • Python——查看目录下所有的目录和文件

    写程序我们经常会遇到需要遍历某一个目录下的所有文件这个操作,然而python有现成的库,只需要2个循环就可以搞定。

     1 import os
     2 
     3 def all_path(dirname):
     4 
     5     result = []#所有的文件
     6 
     7     for maindir, subdir, file_name_list in os.walk(dirname):
     8 
     9         print("1:",maindir) #当前主目录
    10         print("2:",subdir) #当前主目录下的所有目录
    11         print("3:",file_name_list)  #当前主目录下的所有文件
    12 
    13         for filename in file_name_list:
    14             apath = os.path.join(maindir, filename)#合并成一个完整路径
    15             result.append(apath)
    16 
    17     return result
    18 
    19 print(all_path("E:myTest"))

    程序运行结果如下:

      ['E:\myTest\kuang3.png',  'E:\myTest\txt1.txt',  'E:\myTest\txt2.txt',  'E:\myTest\YYGB1.png',  'E:\myTest\YYGB2.png',  'E:\myTest\test1\txt11.txt',  'E:\myTest\test2\txt21.txt',  'E:\myTest\test2\txt22.txt' ]

    当然现在我们是获取了所有的文件,如果我们只想要某一个类型的文件,那么也很简单,写个过滤就好了。所以修改后的代码如下:

    import os
    
    filter=[".txt"] #设置过滤后的文件类型 当然可以设置多个类型
    
    def all_path(dirname):
    
        result = []#所有的文件
    
        for maindir, subdir, file_name_list in os.walk(dirname):
    
            # print("1:",maindir) #当前主目录
            # print("2:",subdir) #当前主目录下的所有目录
            # print("3:",file_name_list)  #当前主目录下的所有文件
    
            for filename in file_name_list:
                apath = os.path.join(maindir, filename)#合并成一个完整路径
                ext = os.path.splitext(apath)[1]  # 获取文件后缀 [0]获取的是除了文件名以外的内容
    
                if ext in filter:
                    result.append(apath)
    
        return result
    
    print(all_path("E:myTest"))
    
    #运行结果
    #['E:\myTest\txt1.txt', 'E:\myTest\txt2.txt', 'E:\myTest\test1\txt11.txt', 'E:\myTest\test2\txt21.txt', 'E:\myTest\test2\txt22.txt']

    或者

    def list_files(self, path):
            files = []
            list_dir = os.walk(path)
            for maindir, subdir, all_file in list_dir:
                
                for filename in all_file:
                    apath = os.path.join(maindir, filename)
                    if apath.endswith('.txt'):
                        files.append(apath)
  • 相关阅读:
    [知识点]计算几何I——基础知识与多边形面积
    [旧版][知识点]SPFA算法
    [旧版][知识点]A*搜索(启发式搜索)
    [知识点]线段树
    [小工具]ChemistryHelper
    [考试]20150314
    [知识点]Cantor展开
    [旧版][知识点]拓扑排序
    [无效]网络流之Dinic算法
    [SCOI2005]扫雷Mine
  • 原文地址:https://www.cnblogs.com/yuanfang0903/p/10821543.html
Copyright © 2011-2022 走看看