大家好,又到了python办公自动化系列。在日常的办公中,我们经常会从一堆不同格式的文件(夹)中搜索特定的文件,可能你是凭着记忆去找或是借助软件,但你有想过如何用python实现吗?

扫描路径内的内容

有些时候我们会希望在当前文件夹的成百上千个文件中快速找到需要的文件,如果这个文件夹又包括很多个子文件夹,并不需要程序进去查找而无端耗费资源。这就是典型的「扫描一层搜索」

  1. 基于 os.scandir()

需求说明

输出C:\Program Files (x86)路径下名字包含“Windows”的文件夹名称,并统计个数

步骤分析

这是一个非遍历的需求,只需要在目的文件夹内扫描一圈判断即可。用到的方法是os.scandir(),使用如下:

import ospath = …for file in os.scandir(path): print(file.name, file.path, file.is_dir())

上面代码最后输出的是给定路径下各内容的名字、绝对路径,并判断其是否是文件夹

需要注意的是os.scandir()只在路径下一级扫描,需求实现的代码如下(代码逻辑很简单,可以自己做相应调整):

import osnum = 0for file in os.scandir(r’C:\Program Files (x86)’): if file.is_dir(): if ‘Windows’ in file.name: print(file.name) num += 1print(‘含有Windows的文件夹个数为:’, num)

  1. 基于 os.listdir()

需求说明

输出C:\Program Files (x86)路径下所有可执行文件 (即后缀为 .exe)

步骤分析

依然是非遍历的需求,这里使用os.listdir(),它比os.scandir()简单一些,可直接调用输出名称而非路径。后缀名可以用字符串的切片来判断,但难免失去灵活性。此时建议用字符串方法string.endswith()来判断名称的结尾是否是.exe,代码如下:

import os for file in os.listdir(r’C:\Program Files (x86)’): if file.endswith(’.exe’): print(file)

三、遍历文件夹搜索文件

更多时候我们希望给定一个大概的路径,在这个路径下的所有文件夹里一层一层找,找到特定文件或者符合要求的文件,这里需要遍历文件,有两种主要的方法:最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

  1. 基于 os.walk()

os.walk 遍历后产生三个参数:当前文件夹路径, 包含文件夹名称 [列表形式], 包含文件名称[列表形式],可以用如下代码完成简单遍历:

import osfor dirpath, dirnames, filenames in os.walk(r’C:\Program Files (x86)’): print(f’打开文件夹{dirpath}’) if dirnames: print(dirnames) if filenames: print(filenames) print(’-’ * 10)

需求说明

遍历C:\Program Files (x86)找出所有新版Excel文件 (即后缀为.xlsx)

步骤分析

只要理解了os.walk()的工作模式,用endswith()判断后缀即可。最后如果需要获得绝对路径可以把当前文件夹路径和文件名拼接,简单一点用 + 或者字符串格式化,也可以用os模块内的方法

import osfor dirpath, dirnames, filenames in os.walk(r’C:\Program Files (x86)’): if filenames: for i in filenames: if i.endswith(’.xlsx’): print(os.path.join(dirpath, i))

  1. 基于非 os 方法:glob

glob在之前的推文也反复提到遍历框架:

import globfor file in glob.glob(’**/*’, recursive=True): print(file)

**/*的使用表示用通配符指代给定路径下的任何一层,recursive参数允许遍历搜索 由于glob可以使用「通配符」,大大拓宽了灵活程度,这里利用 glob 也来完成上面的需求

需求说明

遍历C:\Program Files (x86)找出所有新版Excel文件(即后缀为.xlsx)

import globfor file in glob.glob(’**/*.xlsx’, recursive=True): print(file)

可以看到非常简单,在原有代码基础上加上后缀名就能够完成特定类型文件的搜索。如果需要搜索「特定文件」,如遍历C:\Program Files (x86)找到文件practice.txt,「只需要后一个*改成具体名称就行」

import globfor file in glob.glob(’**/practice.txt’, recursive=True): print(file)

四、写在最后

通过本文的Python自动化脚本制作过程,我们可以再次体会Python办公自动化的强大!如果对自动化代码和数据感兴趣可以在后台回复自动化获取。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

当然本文只是基于几个简单的需求来讲解使用Python来制作搜索文件脚本的主要方法,接下来你可以结合之前的自动化案例或以根据自己的需求添加一些其他的规则或增加新的功能,打造出一款属于你的软件!

用python打造一款文件搜索工具,所有功能自己定义!相关推荐

  1. 用Python打造一款文件搜索工具,所有功能自己定义

    前言 在日常的办公中,我们经常会从一堆不同格式的文件(夹)中搜索特定的文件,可能你是凭着记忆去找或是借助软件,但你有想过如何用Python实现吗?本文将基于几个常见的搜索操作讲解. 扫描路径内的内容 ...

  2. python 找质数的个数_用Python打造一款文件搜索工具,所有功能自己定义!

    一.前言 大家好,又到了Python办公自动化系列. 在日常的办公中,我们经常会从一堆不同格式的文件(夹)中搜索特定的文件,可能你是凭着记忆去找或是借助软件,但你有想过如何用Python实现吗?本文将 ...

  3. python做一个本地搜索工具_用Python打造一款文件搜索工具,所有功能自己定义!...

    一.前言 大家好,又到了Python办公自动化系列. 在日常的办公中,我们经常会从一堆不同格式的文件(夹)中搜索特定的文件,可能你是凭着记忆去找或是借助软件,但你有想过如何用Python实现吗?本文将 ...

  4. 深挖你硬盘里的见不得人的【学习资料】,Python制作一款文件搜索工具

    前言 今天来教大家做一个文件搜索工具,专门来找你电脑里的[学习资料],嘿嘿 开发环境 解释器: Python 3.8.8 | Anaconda, Inc. 编辑器: pycharm 专业版 先演示效果 ...

  5. gorm preload 搜索_文件太多忘记了文件放在什么地方?那你可以试试这款文件搜索工具...

    忘记了文件放在什么地方?文件太多不能一下子找到?那么你也许可以试试这款软件--ProFind for mac版,这是一款适用于macOS系统的文件搜索工具,它具有强大的功能和出色的性能,可为macOS ...

  6. Python打造一款仿CE工具

    一.前言 CE想必大家都有所耳闻吧,在那个单机游戏外挂丛生的年代,CE无疑是一把好手,他可以通过修改内存地址的值,从而改变游戏中的任务的血量和其它数值,CE在使用上也很好上手,整个界面也很清新爽朗,如 ...

  7. 文件搜索工具(Python实现)

    文章目录 文件搜索工具介绍 代码实现 实现思路 os.walk函数 os.path.join函数 代码整体编写 打包成exe程序 效果展示 文件搜索工具介绍 文件搜索工具能够基于名称快速定位匹配的文件 ...

  8. 文件搜索工具everything

    Everything是voidtools开发的一款文件搜索工具,官网描述为"基于名称实时定位文件和目录(Locate files and folders by name instantly) ...

  9. php 文本搜索软件,【MSTech Search in Contents下载】MSTech Search in Contents(文件搜索工具) v2.0.0.0 免费版-开心电玩...

    软件介绍 MSTech Search in Contents是一款帮助用户快速找到所需文件的搜索工具,我们可以通过这款软件来进行搜索,然后将自己想找的文件路径寻找出来. 软件简介 MSTech Sea ...

最新文章

  1. tensorflow tf.keras.layers tf.image 图像增强
  2. 6. Oracle闪回特性
  3. 请求体的方式传参_Angularjs中$http以post请求通过消息体传递参数的实现方法
  4. 关于SQL Server中索引使用及维护简介
  5. Mina2.0框架源码剖析(八)
  6. redis的安装和运行
  7. python语言表白语句简单_简短的表白语句
  8. Audit(查看审核/审计信息)
  9. 第一个云原生步骤:自动化构建、测试和部署(二)
  10. Windows系统 services.msc命令详解,Windows命令行查看本地服务
  11. C#操作存储过程,输入参数,返回结果
  12. 《数字图像处理 第三版》(冈萨雷斯)——第十一章 表示和描述
  13. CSS手写向下小三角(极简代码)
  14. 信号处理基础-matlab-wavread-audioread
  15. 基于单片机(STC89C52)的易燃气体浓度检测报警系统
  16. python颜色画线_matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
  17. python上方菜单栏不见了_python tkinter-菜单栏
  18. 机器人控制算法四之迭代法求解四轴机器人逆解
  19. 24小时制与12小时制的换算
  20. fflush函数使用

热门文章

  1. 哈工大导师禁止实验室硕士出去实习,称「实习就像和35岁渣男试婚」,你怎么看?...
  2. 2019年,我终于知道86版西游记到底好在哪里了
  3. 动漫:史上最简(详细)KMP算法讲解,看不懂算我输!
  4. 漫画:到底什么是微服务?
  5. Django博客系统(详情页面展示)
  6. 规格表管理之更新规格表数据
  7. Jupyter notebook 指定 Python 解释器 anaconda
  8. python中列表、字典和集合推导式
  9. 10-19政治单选-多选答案
  10. 机器学习与优化基础(Machine Learning and Optimization)