当前位置:网站首页>如何在电脑成千上万支文件中找到想要的文件?
如何在电脑成千上万支文件中找到想要的文件?
2022-06-21 18:42:00 【极简小课】
本篇文章主要介绍利用Python写段小程序,来快速找到自己想要的文件。
废话不多说,先上代码,然后再解释。
import os
def findfiles(name, path):
# 定义保存查找结果的数组
search_result = []
# 利用os.walk函数遍历路径下的所有文件
for dir_path, dir_names, filenames in os.walk(path):
for filename in filenames:
if name in filename:
search_result.append(os.path.join(dir_path, filename))
# enumerate函数会以list的形式返回列表的下标和值
for index, value in enumerate(search_result):
# 在查找结果里,按照序号、文件名分行打印输出
print("[" + str(index+1) + ",", "'" + value + "'" + "]")
if __name__ == '__main__':
search_path = input("请输入要搜索的路径:")
file_name = input("请输入要查找的文件名字:")
findfiles(file_name, search_path)这段代码其实很简单,主要涉及两个主要的函数,一个是os模块的walk函数,一个是内置函数enumerate。
1. 我们先来看下walk函数,os.walk函数就是遍历所有文件,什么意思呢?就是如果你当前搜索的路径下还有文件夹,会继续进入到这个文件夹下查找文件,一层一层找下去,直到最后没有文件夹。
walk函数返回三个值:
dir_path: 当前搜索路径
dir_names: 当前路径下存在的所有文件夹
filenames: 当前路径下存在的所有文件
比如下面例子,在文件夹"100days"下面,有个"day01"文件夹,但是没有文件, 所以第三个值是空的列表,然后会进入"day01"文件夹继续找文件,发现已经没有文件夹了,只有两支文件。
F:\Study\Python\100days ['day01'] []
F:\Study\Python\100days\day01 [] ['flag.py', 'peppa_pig.py']2. enumerate函数是python内置函数,用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
什么意思呢?就是在for循环里用enumerate作用一个可遍历的对象,不但会返回对象里的每个值,还会返回值对应的下标,有时候我们需要用到值对应的下标,所以就会使用enumerate函数,写段小代码演示下
names = ["张三", "李四", "小明", "大名"]
for index, name in enumerate(names):
print(index, name)输出结果:
0 张三
1 李四
2 小明
3 大名这样我们就知道张三在第一个位置,李四在第二个位置等等。
最后来看下总程序执行结果:
比如在电脑的F:\Study\Python路径下查找名字包含day的文件,结果如下:
扩展:
os模块下还有一个函数也是用来查找文件,就是os.listdir,和os.walk的区别就是,os.listdir只会返回当前路径下的所有文件夹和所有文件,不会继续再深入下一层文件夹继续查找。
边栏推荐
- Uniapp obtains login authorization and mobile number authorization (sorting)
- Inno setup installation path box learning
- 麻烦问下,数据集成中的独享资源,无法正常连接某些数据库,可能是什么原因,以下的原因好像都不是。公共资
- 最高月薪17K,只要心中有一片希望的田野,勤奋耕耘将迎来一片翠绿~
- Gradle download and installation configuration
- 某大厂第二轮裁员来袭,套路满满
- Leetcode personal question solution (Sword finger offer 21-25) 21 Adjust the array order so that odd numbers precede even numbers, 22 The penultimate node in the linked list, 24 Reverse linked list, 2
- 1157 Anniversary
- Point cloud to depth map: conversion, saving, visualization
- [wechat applet] collaboration and publishing data binding
猜你喜欢
随机推荐
Summary of methods for NSIS to run bat
1156 Sexy Primes
范畴(Category)
uniapp小程序打开地图选择位置demo效果wx.chooseLocation(整理)
Goldfish rhca memoirs: do447 managing user and team access
How to redeem financial products after the opening date?
汇编语言贪吃蛇、俄罗斯方块双任务设计实现详解(三)——俄罗斯方块详细设计
Grain College p40~43
mysql增加的语句是什么
Uniapp obtains login authorization and mobile number authorization (sorting)
某大厂第二轮裁员来袭,套路满满
Is it safe to open a margin account? What are the requirements?
Cloudcompare & PCL calculates transformation matrix based on matching points
汇编语言贪吃蛇、俄罗斯方块双任务设计实现详解(一)——整体系统设计
How to query the data in MySQL
SQL语句知识点有哪些
点云转深度图:转化,保存,可视化
麻烦问下,数据集成中的独享资源,无法正常连接某些数据库,可能是什么原因,以下的原因好像都不是。公共资
【微信小程序】协同工作和发布 数据绑定
Recycleview drag effect









