python遍历目录

这里介绍两种方法

  1. 第一种深度优先,即先遍历当前目录下的第一个目录里面的第一个目录,以此类推,然后再逐层向上遍历。代码如下:
import os
def gci(filepath):
#遍历filepath下所有文件,包括子目录  
    files = os.listdir(filepath)  
    for fi in files:    
        fi_d = os.path.join(filepath,fi)    
        if os.path.isdir(fi_d):
            print(os.path.join(filepath, fi_d))
            gci(fi_d)    
        else:      
            print(os.path.join(filepath,fi_d))#递归遍历/root目录下所有文件
gci('f:\test')

运行结果:

 
 
  1. 第二种广度优先,是先把当前目录下的所有文件文件夹打印出来,再分别进每一个文件夹打印相应的文件文件夹,再一次类推,逐层往下。代码如下:
import os.path
rootdir = 'f:\test'                                   # 指明被遍历的文件夹
def gci(rootdir):
    for parent,dirnames,filenames in os.walk(rootdir):    #三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字
        for dirname in  dirnames:                       #输出文件夹信息
            #print("parent is:" + parent)
            #print("dirname is:" + dirname)
            #print("the full name of the file is:" + os.path.join(parent, dirname))  # 输出文件夹路径信息
            print(os.path.join(parent, dirname))  # 输出文件夹路径信息

        for filename in filenames:  # 输出文件信息
            #print("parent is:" + parent)
            #print("filename is:" + filename)
            #print("the full name of the file is:" + os.path.join(parent, filename))  # 输出文件路径信息
            print(os.path.join(parent, filename))  # 输出文件路径信息
gci(rootdir)

运行结果:


 
 

小礼物走一走,来简书关注我


原文地址:https://www.cnblogs.com/zknublx/p/8418004.html