python3遍历目录查找文件

一直有一部分软件,他们的主要功能就是方便用户查找本地文件位置。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!以上代码实现了输入文件名后遍历所有目录查找文件的功能。你可以更具自己的需求来修改代码。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2219648.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

WinSvr:在 Windows Server 中启用无线连接

默认情况下,所有 Windows Server 2022/2019/2016/2012R2 版本都禁用无线 (Wi-Fi) 支持。如果将 Wi-Fi 网络适配器(USB 或 PCI)插入运行 Windows Server 的主机,则无法在控制面板中启用它。本文将在这篇简短的说明中展示如何在 Windows Server 上启用无线支持。 注意,在 W…

【运维笔记】Docker 部署Kibana-7.4.0(在线Docker版)

Docker 部署Kibana-7.4.0(在线Docker版) 一、准备工作: Centos 7.5 安装 Docker-24.0.6 详细步骤(避坑版): https://blog.csdn.net/seesun2012/article/details/133674191注意1:本文的命令使用…

短视频账号矩阵系统源码saas===独立部署

前言: 短视频账号矩阵是指在不同的短视频平台上,一个个人或企业所拥有的账号数量和分布情况。由于不同的短视频平台受众人群和内容类型等因素不同,因此拥有更多账号可以在更广泛的受众中传播内容,提高曝光度和流量。短视频账号矩阵…

管理类联考——逻辑——真题篇——按知识分类——第十章 数学相关

第十章 数学相关 第一节 集合 真题(2010-53)-数学相关-集合-画饼集能力-朴素逻辑 53.参加某国际学术研讨会的 60 名学者中,亚裔学者 31 人,博士 33 人,非亚裔学者中无博士学位的 4 人。根据上述陈述,参…

2017年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题——解析版

🏠个人主页:fo安方的博客✨ 💂个人简历:大家好,我是fo安方,考取过HCIE Cloud Computing、CCIE Security、CISP、RHCE、CCNP RS、PEST 3等证书。🐳 💕兴趣爱好:b站天天刷&…

爬虫小白系列01期: 从李白杜甫,来看爬虫本质 、 浏览器访问网页原理 、 请求头的概念

众所周知,爬虫的本质是,模拟浏览器打开网页,获取网页中我们需要的那部分数据。 那首先我们应该清楚,普通一般浏览器打开网页的流程和原理是怎样的? 根据生活经验,我们使用浏览器打开网页的步骤一般是这样…

神犇营my0001:春晓

本题来源于神犇营 题目: [my0001] 唐代诗人孟浩然所作的《春晓》是一首家喻户晓的诗,但是校园里更流行改编版的《春晓》。 春眠不觉晓, 处处蚊子咬。 夜里嗡嗡声, 脓包知多少。 现在我们要用刚才所学的知识来输出这首诗的前两句。首先在右边的输入C++程序的基本框架…

世界十大名诗

世界十大名诗 时间:2011-01-07 来源:网络 点击:318次 When You Are Old by William Butler Yeats (1865-1939) WHEN you are old and gray and full of sleep, And nodding by the fire, take down this book, And slowly re…

9月火气大,能认真写代码么?

不羡鸳鸯不羡仙,一行代码调半天。原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。 我在风中藏把刀,斩尽世间秋色。 这句注定要流传千古的名诗,是xjjdo…

html语言登黄鹤楼,《中国诗词大会》命题专家方笑一, 揭秘千古名诗《登黄鹤楼》为何格律“不合格”...

楚天都市报10月26日讯(记者舒均 李辉 通讯员王红念 江萌)10月26日上午,华东师范大学古籍研究所教授、央视 《中国诗词大会》命题专家暨现场学术顾问方笑一做客“黄鹤大讲堂”,带来一场《古诗词与天下名楼》品评锦绣诗词的讲座,受到江城上百名…

NLP 自然语言处理实战

前言 自然语言处理 ( Natural Language Processing, NLP) 是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,用于分析理解机器与人之间的交互,常用的领域有:实体识别、文…

软件行业与就业(导师主讲)

在企业软件应用的整体架构体系中,有一部分被称为中间件,那么什么叫中间件? 中间件(Middleware)是指位于操作系统和应用程序之间的一层软件层,它提供了一组工具和服务,用于简化和增强企业软件应用…

Docker修改阿里源

在一次安装rtmp推流服务时,总是无法下载源,估计是国外资源下载超时照成的,于是想到修改为国内源。 docker pull alfg/nginx-rtmp Using default tag: latest latest: Pulling from alfg/nginx-rtmp 530afca65e2e: Retrying in 7 seconds c20…

试卷模板 html,一年级语文试卷模板

一年级语文试卷模板 每个学期我们都要进行一次考试,为让大家能够考的更好,下面,小编为大家分享一年级语文试卷模板,希望对大家有所帮助! 一、选字填空,再把句子读一读。 元 园 原 圆 员 1.公(   )里的花好看极了…

Qt QGridLayout和QFormLayout案例分析

QGridLayout和QFormLayout是Qt中常用的布局管理器,可以用于在应用程序中设置控件的位置和大小。 QGridLayout网格布局(栅格布局) QGridLayout是一个网格布局管理器,可以将控件放置在一个二维网格中。在QGridLayout中,控件可以跨越多个行和列…

linux中安装RocketMQ以及dashboard

前提: 需要安装jdk8 上传下面的文件到服务器中 新建目录 mkdir rocketmq 将下载后的压缩包上传到阿里云服务器或者虚拟机中去,并解压 unzip rocketmq-all-4.9.2-bin-release.zip 配置环境变量 vim /etc/profile 配置内容: export NAM…

mysql面试题29:大表查询的优化方案

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一下大表查询的优化方案 以下是几种常见的大表优化方案: 分区&…

ubuntu显卡驱动掉了重新装

之前装好的Ubuntu显卡驱动因为系统内核自动升级(以防下次再次出现这种情况现在立刻马上关闭所有自动更新)输入nvidia-smi指令不再提示显卡信息,此时不需要重装系统,再次装显卡驱动即可。方法如下(此方法适用于之前装成…

【java学习】类的方法(17)

文章目录 1. 类方法的基本用法2. 对象的创建和使用3. 练习题4. 方法的调用4.1. 注意事项 类的两个成员:方法和属性 1. 类方法的基本用法 方法是类或对象行为特征的抽象,也称为函数。java 里的方法不能独立存在,所有的方法必须定义在类里。 …

更新内核,显卡驱动崩掉解决办法

以下是在崩掉后,重新启动,nvidia-smi出现的问题: NVIDIA-SMI has failed because it couldnt communicate with NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.这里使用了sudo apt-get install dkms的方…