python3遍历目录查找文件

一直有一部分软件,他们的主要功能就是方便用户查找本地文件位置。python当然也可以完成这项功能,所以我写了一个简短的代码。

写完发现,python真的是一门简洁的语言啊!

我完成这个功能主要就是用了os模块的功能,直接对操作系统作用。所以这里可能需要首先讲一下部分os操作的功能,方便大家能看懂。

 

import os

os.getcwd()           #获取当前工作目录,即当前工作路径
os.chdir(path)        #切换路径(切换到path路径下)
os.path.isdir(path)   #判断路径是否存在(判断path是否存在)
os.listdir()          #列表形式列出指定目录下的所有文件以及其子文件
os.curdir()			  #返回当前目录  (为'.')
os.sep				  #这个就是分隔符,为你使用该系统的分隔符 (windows '\';linux '/')
os.pardir             #获取当前目录的父目录名称,字符串('..')

 

 

 

以上就是下面代码所用的一些os操作(当然os远不止这些,需要了解你看以看看专门讲解os模块的文章,这里就不累述了)

附上思路:

一:创建列表保存所有主目录,用来依次访问。

二:就像DFS一样,采用深度优先搜索,依次查找一个文件,如果它有子目录就继续查找,知道没有子目录。

三:在二的基础上,每查找到一个子目录是,就切换到改路径,如果到底了,就获取它的父目录返回。

四:肯定要用到的就是递归啦!!如果没找到,就返回父目录,切换路径到父目录,继续查找。

附上代码:

 

'''
	author:daihui
'''
import os

def finddir(startdir, target):
    try:
        os.chdir(startdir)  #切换目录
    except:
        return
    for new_dir in os.listdir(os.curdir):   #列表出该目录下的所有文件(返回当前目录'.')
        print(new_dir)
        if new_dir == target :
            print("当当当 找到啦!!!!!!!!!")
            print (os.getcwd() + os.sep + new_dir)
            exit()
        if os.path.isdir(new_dir) :  #判断路径是否存在
            finddir(new_dir, target)
            os.chdir(os.pardir)   #切换到当前目录的父目录

# startdir = str(input('Please input startdir: '))
# target = str(input('Please input target: '))
lis = ['d:','e:','f:','g']  #更具具体需要,你可以在这里修改查找的目录
target = r'要查找的文件名'
for i in lis:
    startdir = i
    finddir(startdir, target)

 

 


OK!以上代码实现了输入文件名后遍历所有目录查找文件的功能。你可以更具自己的需求来修改代码。

 

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值