用 Python 实现文件查找

article/2025/10/6 21:22:04

用 Python 实现文件查找(BIF实现及队列实现)

(1)利用内置函数实现文件查找

1、功能:返回用户输入的文件的绝对路径

2、设计思路:

  • (1)用户输入在哪个盘进行查找
  • (2)遍历此盘文件,若为目标文件则输出
  • (2)无此文件,则输出错误

3、实验代码

#查找某个目录下的目标文件
import os       #引入操作系统模块
import sys      #用于标准输入输出def search(path,name):for root, dirs, files in os.walk(path):  # path 为根目录if name in dirs or name in files:flag = 1      #判断是否找到文件root = str(root)dirs = str(dirs)return os.path.join(root, dirs)return -1path = input('请输入您要查找哪个盘中的文件(如:D:\\\)')
print('请输入您要查找的文件名:')
name = sys.stdin.readline().rstrip()  #标准输入,其中rstrip()函数把字符串结尾的空白和回车删除
answer = search(path,name)
if answer == -1:print("查无此文件")
else:print(answer)

4、运行结果展示

1、无此文件
1241288-20180405224701436-1798199081.png

2、有此文件
1241288-20180405224757130-189544062.png
1241288-20180405224814128-35516857.png

(2)队列实现文件查找

1、设计思路

定义队列 ALLFiles 存储所有文件while ALLFiles 不为空if pop 为目录then 将目录内所有文件入队elesif pop 为文件then if 为目标文件then breakend
输出路径

2、实验代码

#查找某个目录下的目标文件
import os       #引入操作系统模块
import sys      #用于标准输入输出
import easygui as g     #引入图形用户界面def search(path1,name):Allfiles = []           #创建队列Allfiles.append(path1)while len(Allfiles) != 0:    #当队列中为空的时候跳出循环path =Allfiles.pop(0)    #从队列中弹出首个路径if os.path.isdir(path): #判断路径是否为目录ALLFilePath =os.listdir(path)    #若是目录,遍历将里面所有文件入队for line in ALLFilePath:newPath =path +"\\"+line   #形成绝对路径Allfiles.append(newPath)else:   #如果是一个文件,判断是否为目标文件target = os.path.basename(path)if target == name:return pathreturn -1path = g.enterbox(msg='请输入文件目录(如:D:DEV)')
name = g.enterbox(msg='请输入您要查找的文件名:')
answer = search(path,name)
if answer == -1:g.msgbox("查无此文件",'查找错误')
else:g.msgbox(answer,'返回路径')

3、运行结果

  • 有此文件
    1241288-20180406153839837-1085265273.png
    1241288-20180406153857860-1419556858.png
    1241288-20180406153920136-658222788.png

  • 无此文件
    1241288-20180406154052336-633181347.png
    1241288-20180406154118446-2050476301.png
    1241288-20180406154129898-2098969827.png

遇到问题及解决方法

  • 编译错误
    1241288-20180405223011576-205705514.png
    解决方法:os.path.join() 的参数是 str 型, 添加代码root = str(root) dirs = str(dirs)
  • 缩进错误
    1241288-20180405223412565-1075273815.png
    解决方法:为了看看它能输出多少,我等待了五分钟,它还没有结束;结果把if name in dirs or name in files:语句重新打了一遍就可以了,应该是缩进的错误
  • 答案错误:把相同目录下的其他文件也输出出来了
    1241288-20180405223749944-713975045.png
    解决方法
    1241288-20180405224237633-1325598224.png
    os.walk() 的 dirs 参数 才是返回目录,将print(os.path.join(root, files))改为print(os.path.join(root, dirs))
  • 答案错误:输出的路径不是绝对路径
    1241288-20180405230054142-948452345.png
    解决方法:将for root, dirs, files in os.walk('/'): # / 为根目录 改为 for root, dirs, files in os.walk(path): # path 为根目录

心得体会

  • 代码虽然很短,但是完成它的过程很不容易
  • Python 中 循环和 if 分支后不用加大括号,但是需要: ,而且缩进要十分注意
  • Python 不用定义类型并不代表变量没有类型,使用变量前需要先赋值
  • 序列包含 列表、元组和字符串
    列表主要标志是[ ],是一个打了激素的数组,什么东西都能往里装
    元组和字符串都是戴上了枷锁的列表;元组标志是( ) 和 ,,其元素不可改变;字符串不能轻易修改
    三者共同点:
    1、都可以通过索引得到一个元素
    2、默认索引值从零开始
    3、可以通过分片的方式得到一个范围内元素的集合
    4、有很多共同操作符(重复操作符、拼接操作符、成员关系操作符等)
  • Python 中有很多已经定义好的 BIF ,编写代码时很方便
  • 经常会把输出 print() 打成 printf()

转载于:https://www.cnblogs.com/Lclkris/p/8724711.html


http://chatgpt.dhexx.cn/article/DkdhwMRl.shtml

相关文章

如何测试电脑软件重复或多,如何快捷找出电脑内的重复文件(两个工具)

我特喜欢收集各种软件和资料,但是时间久了,很多软件和资料之前下载过了,后来不记得了,又下载了,这样重复的非常多。还有,我喜欢备份文件,就算一些普通的文件,也会随手临时备份一下&a…

使用代码克隆检测功能查找重复代码

代码克隆是非常相似的独立代码片段。 在已开发一段时间的应用程序中,常会出现这种现象。 克隆提高了更改应用程序的难度,因为你必须找到并更新多个片段。 Visual Studio Ultimate 或 Visual Studio Premium 可帮助你查找代码克隆,以便你进行重…

计算机上的查找替换功能快速格式化,Excel 2016中使用查找替换功能应用技巧

大家知道Excel中有查找和替换这个功能,懂得按住【Ctrl+F】可以直接打开“查找”对话框,按住【Ctrl+H】直接打开“替换”对话框。但你真的很了解这个功能了吗? 在使用Excel的时候,对于其中的查找功能的使用基本是比不可少的,那Excel中都可以在哪里进行查找呀。下面说下在Ex…

虚拟化、文件系统、查找文件

文章目录 虚拟化虚拟化的概念安装KVM安装gustos了解并配置KVM网络桥接:NAT:仅主机(hostonly): 文件系统了解文件系统的概念:了解硬链接的概念:挂载文件系统: 查找文件: 虚拟化 虚拟化的概念 虚拟化≠虚拟机 虚拟化里…

Duplicate Cleaner Pro(电脑重复文件清理软件)官方中文版V5.15.0 | 重复文件查找王下载

Duplicate Cleaner Pro 是一款相当出色的电脑重复文件清理软件,有重复文件查找王的美誉,支持字节、MD5以及其他多种哈希算法等内容比对方式,主要功能就是帮助大家从计算机硬盘中深入快速扫描查找并删除重复的文件、音乐、视频、照片、文档以及…

python删除重复文件

使用场景 网上爬取的图片重复量太大,需要删除重复图片。 环境 python 3 hashilib 分析一下这个问题: 首先,文件个数非常多,手工查找是不现实的,再说,单凭我们肉眼,在几千张图片或文件里面找…

工具及方法 - 使用Total Commander来查找重名文件

我只是一个Total Commander的轻度使用者,主要使用的是打开多个窗口,可以方便的以标签形式切换。 还有,这个软件是免费的,只是免费版打开时多一步,要输入个数字验证。 今天在使用一个SDK时,要包含进很多头文…

在群晖中批量删除重复文件

安装“存储空间分析器”套件配置“重复文件候选”报告,并生成报告查看并下载报告用excel打开报告并筛选出需要删除的文件 IF(A2A1,1,"")上传文件到群晖,并配置计划任务 cat 文件路径 | xargs -I {} rm -f "{}"执行并删除计划任务提醒…

在 QNAP(威联通)NAS 上自动查找和删除 重复文件 的方法

Qidi 2020.12.12 0. 前言 看到很多人说在 QNAP NAS 上使用 fdupes 工具只能实现查找重复文件的效果,要删除文件只能对照生成的重复文件列表手动操作。这个说法其实是不对的,fdupes 完全支持自动去重功能。 以下正文说明了使用 fdupes 工具自动查找并删…

硬盘快满了,怎么办?查找重复文件

硬盘快满了,怎么办?查找重复文件,绿色版 链接:https://pan.baidu.com/s/1nbhRhninawNLK5CHZfanWA 提取码:yu37 序列号 TDFP-XWAL-EPNX-ALWN-LLLLLL 它非常易于使用,只需要选择资源(驱动器&…

重复文件查找工具

电脑在经过长时间的使用后,会存在着大量重复的无用文件,这些文件会占用我们电脑中有限的磁盘空间,虽然现在我们的磁盘空间都是够大了,这些重复文件也许不算什么,但是它们会影响到系统的效能,并且我们还是要…

计算机一级查找同类型文件,如何快捷找出电脑内的重复文件

有时特喜欢收集各种软件和资料,但是时间久了,很多软件和资料之前下载过了,后来不记得了,又下载了,这样重复的非常多。这样重复的文件多了,占了大量的磁盘空间,也影响电脑运行性能,当…

怎么快速查找重复文件以及删除重复文件

多余的重复文件可能会浪费大量的硬盘存储空间,久而久之,电脑内存就会不够用,uplicate Finder and Remover for Mac是一款功能强大且操作简单的软件,如果您想要快速找出重复文件,节省磁盘空间,装机必备软件。…

mac电脑重复文件如何查找?

当我们的MAC电脑提示你磁盘空间已满时可以通过在Mac上删除不必要的重复文件,文件夹和类似照片,可以获得更多可用磁盘空间,Duplicate File Finder for Mac是一款功能强大的重复文件查找软件。Duplicate File Finder for Mac可处理图像,视频,音乐,文档,文件夹等等。它允许…

如何查找重复文件并快速删除,电脑查重复文件的方法

在日常使用电脑的过程中,我们要下载、编辑、保存文件,难免会出现一些重复文件,这些重复文件不仅会给工作带来不便,也会占用硬盘宝贵的空间。因此,经常查找与清理电脑中的重复文件就显得格外重要。如何查找重复文件并快…

jquery.orgchart.js 简单demo,自定义内容,自定义事件

orgchart简单demo GIT地址&#xff1a; https://github.com/Vlovely/orgchartDemo.git 预览图 代码示例 <!DOCTYPE html> <html lang"en"> <head><meta charset"utf-8"><title>Organization Chart Plugin</title>&…

html 组织结构 图表,OrgChart-简单实用的组织结构图表jQuery插件

OrgChart是一款简单实用的组织结构图表jQuery插件。OrgChart通过DOM元素,jQuery和CSS3过渡效果来制作组织结构图表。可以使用本地数据,或通过ajax调用来完成数据的填充。 使用方法 使用OrgChart组织结构图表插件需要在页面中引入jquery.orgchart.css,jquery和html2canvas.js…

html5控件结构图,OrgChart组织架构图控件

插件描述:jQuery OrgChart 是一个用来绘制组织结构图的 jQuery 插件。 可以自己定加载自己想要的组织架构,通过json的形式 该插件为画组织架构图插件,通过OrgChart API定义的数据接口以json的数据形式将自己想要的组织架构数据传给orgChart,上手难度低,可扩展性比较高。 从…

使用vue-orgchart库来创建组织架构图

在这篇博客中&#xff0c;将详细介绍如何构建一个使用Vue.js和vue-orgchart的组织架构图Demo。Vue.js是一种构建用户界面的JavaScript框架&#xff0c;而vue-orgchart是一个基于Vue的组织结构图组件。本Demo将展示如何使用这两种技术来创建一个展示组织架构的可视化工具。 页面…

JQ插件OrgChart实现组织结构图

最近在做一个OA系统的组织结构图&#xff0c;需求如下。 第一眼看起来让人联想到脑图&#xff0c;思维导图大家都比较熟悉。但这不是脑图&#xff0c;是组织结构图。有添加&#xff0c;编辑&#xff0c;删除等功能… 随后我就找了一些插件&#xff1a; 1、jsMind&#xff08;…