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

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

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

import osos.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 osdef finddir(startdir, target):try:os.chdir(startdir)  #切换目录except:returnfor 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 = ifinddir(startdir, target)

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

python3遍历目录查找文件相关推荐

  1. linux 遍历目录查找文件find太慢,Linux下比find快N倍的文件查找命令

    使用linux操作系统的人,一般都用过文件查找命令find,在文件数量非常庞大的时候,比如在高通的android工程项目中,目录大小有十几个G,文件数量非常多,用find命令就太慢了. 下面介绍一个比 ...

  2. python 遍历目录或文件

    python 遍历目录或文件 如果想得到某个目录下面的所有文件名,用 python 怎么做? 先看代码: import os,sysdef explore(dir):for root, dirs, f ...

  3. 怎么在linux指定目录下查找文件夹下,Linux下如何使用find命令指定目录查找文件...

    在进行Linux命令操作的时候,有时会搜索出许多目录,而这些目录又不是我们所需要的,这时就可以将其忽略.下面学习啦小编就教大家如何使用find命令忽略子目录. 使用find命令在linux系统中查找文 ...

  4. php遍历目录与文件夹,介绍几种php遍历目录与文件夹的方法

    介绍几个php遍历目录的方法,可以遍历目录及目录中的文件,供大家参考 遍历目录或遍历目录下指定类型的文件,这是每一个童鞋在写程序的时候难免会用到的.PHP本身也提供了很多灰常有用的函数,正确地使用它们 ...

  5. python 递归遍历目录排序_python下递归遍历目录和文件

    方法一:递归调用: import os def dirlist(path, allfile): filelist =  os.listdir(path) for filename in filelis ...

  6. php用栈遍历目录和文件,php如何遍历目录,php非递归算法遍历目录的例子

    function myscandir($pathname){ foreach( glob($pathname) as $filename ){ if(is_dir($filename)){ mysca ...

  7. nodejs 遍历目录(文件夹)下的所有文件

    nodejs 遍历目录 const path = require('path') const fs = require('fs') // 服务器端的jquery,用于选择字符 eg: $('.titl ...

  8. 详细讲解Python遍历目录的文件夹(dir)、文件(file)的三种方法:os.listdir、os.walk和os.scandir

    在使用Python开发项目的时候,会遇到需要遍历文件夹.文件的需求,我整理了三种主流方法:os.listdir.os.walk和os.scandir,并进行了详细的讲解. 用于实验的目录: .test ...

  9. Java遍历目录下文件的方法(包括子目录、文件内容)

    一.遍历目录下的文件(不包括子目录下文件) public static void main(String[] args) {String inputPath = "F:\\log\\test ...

最新文章

  1. 刷过一题之黑魔法师之门
  2. 走马观花AutoML
  3. python装饰器-python修饰器(装饰器)以及wraps
  4. Scala基础教程(五):函数、闭包
  5. boost::set_union相关的测试程序
  6. Window 7 下的某些服务不能随便禁用! 无法立即删除.exe文件,因为禁用了Application Experience服务。...
  7. c++ error函数_R语言中广义线性模型(GLM)中的分布和连接函数分析
  8. java继承层次结构,在状态模式中实现继承层次结构 - java
  9. YUI 的模块信息配置优先级关系梳理
  10. [转]Gson的基本使用
  11. iphone 开发第四天 - 字符串
  12. 【MFC】字体类——CFont
  13. 【PS】免费 使用PS批量将pdf转换成图片 pdf转图片 pdf转jpg pdf转png
  14. 计算机论文物业管理系统,小区物业管理系统的设计与实现(计算机毕业设计)...
  15. 使用Word(Office 365)版本中的简历助手
  16. 软测量作业matlab_用偏最小二乘法PLS求解回归方程
  17. 分享 Android 识音识别 挺有想法的。
  18. win7 共享wifi 手机如何上网
  19. 【JDBC】连接MySQL数据库实现增删改查
  20. 表格控件SpreadJS开发案例:应收账款帐龄分析表(附源码)

热门文章

  1. 如何快速获取淘宝商品的详细信息?看这里就够了
  2. 可以装虚拟机的云服务器,云服务器可以装虚拟机吗
  3. ubuntu+svn+apache配置
  4. Qt 并行运算高级API QtConcurrent
  5. css3实现div hover阴影效果
  6. 40岁男人娶20岁女孩
  7. Docker架构部署及镜像制作,免费容器云体验
  8. Flutter实现京东淘宝电商商品详情页效果
  9. 【编译原理】第8讲 语法制导翻译(习题答案)——MOOC哈尔滨工业大学陈鄞
  10. 软件验证计划简化版模板