按条件自动搜索文件

简介: 按条件自动搜索文件

在计算机的某个文件夹中,假如有一大堆不同格式的文件,如下图:

image.png

我们的目的:快速查找出文件名中包含某文字内容的指定格式的文件,看看它们都放在哪里?通过分析,可能在当前文件夹中也可能在某个子文件夹里,可以使用两种方法,解决这个查找问题!

os模块实现
利用os模块的walk()方法来获取文件列表,再通过if条件语句筛选符合规则的文件。
导入使用的os模块,file_name是我们要查找的文件的名(可以是包含的部分文字),suffix_name是要查找的文件类型。os模块的walk()方法会递归来帮助我们获取文件夹中的所有文件,并得到一个文件列表。针对文件列表filenames中的每个文件,首先判断它是否包含file_name的suffix_name文件。如果同时满足这两个条件,再调用join()方法拼接出它的绝对路径,打印出最终的结果即可。
源码如下:

import os

file_name = input('请输入要查找的文件名(可以是包含的部分文字):')
suffix_name = input('请输入要查找的文件后缀名(文件类型,如"xlsx, doc, txt等"):')

# 本案例是指定的路径
path = '/Users/bruce_liu/Desktop'
for dirpath, dirnames, filenames in os.walk(path):
    for name in filenames:
        if f'{file_name}' in name and f'.{suffix_name}' in name:
            file_path = os.path.join(dirpath, name)
            print(file_path)

运行结果:

请输入要查找的文件名(可以是包含的部分文字):Python
请输入要查找的文件后缀名(文件类型,如"xlsx, doc, txt等"):md
/Users/bruce_liu/Desktop/xpath/爬虫案例/Python爬虫—requests模块.md
/Users/bruce_liu/Desktop/python-penetration/Python编写单词复习小程序.md
/Users/bruce_liu/Desktop/python-penetration/用Python编写背单词的小程序.md

glob模块实现
利用glob模块的正则通配符,来筛选符合规则的文件。
导入glob模块后,调用glob()方法,其中*搭配recursive参数,实现递归查找文件,file_name和suffix_name与“*”和path路径一起拼接要查找的文件路径下的指定条件的文件。源码如下:

import os
import glob

file_name = input('请输入要查找的文件名(可以是包含的部分文字):')
suffix_name = input('请输入要查找的文件后缀名(文件类型,如"xlsx, doc, txt等"):')

# 本案例是指定的路径
path = '/Users/bruce_liu/Desktop/'
# 遍历文件夹及文件夹
for file in glob.glob(os.path.join(path, f'**/*{file_name}*.{suffix_name}'), recursive=True):
    print(file)

两种方法中glob模块在文件查找方面更有优势。

相关文章
|
SQL 关系型数据库 MySQL
Java 最常见的面试题:怎么验证 mysql 的索引是否满足需求?
Java 最常见的面试题:怎么验证 mysql 的索引是否满足需求?
|
监控 自动驾驶 数据中心
电子工程在生活中的应用
电子工程在现代生活中有着广泛的应用,包括通信、计算机、医疗设备、汽车电子、家用电器和能源等领域。手机、电视、互联网、医疗成像设备、汽车控制系统、家电产品等都是电子工程技术的应用。电子工程在现代生活中无处不在,几乎所有的科技产品和设备都离不开电子工程技术的支持。
323 0
|
4月前
|
API 调度 AI芯片
飞桨x昇腾生态适配方案:08_性能调优方法
本文主要探讨性能优化中的问题定界与解决方法,针对计算时间和调度时间两方面展开分析。对于计算时间长的问题,可能源于算子运行在 AI_CPU 或使用较慢的 aclop 算子,可通过数据类型转换、切换至 aclnn 算子或优化底层算子来改善。调度时间长则常因算子运行在 CPU、重复编译或通讯耗时过多引起,可采取算子适配优化、减少编译次数及避免冗余 copy 操作等手段解决。此外,文章还介绍了适配层优化策略,包括未注册算子排查、重复编译优化以及通过更换算子、调整数据类型和引入融合算子提升性能。
89 10
飞桨x昇腾生态适配方案:08_性能调优方法
|
6月前
|
数据采集 机器学习/深度学习 人工智能
SongGen:三秒克隆音色!开源AI一键生成专业级歌曲,创作人必备神器
SongGen是由上海AI Lab、北京航空航天大学和香港中文大学联合推出的单阶段自回归Transformer模型,能够通过文本生成高质量歌曲,支持混合模式和双轨模式,显著提升生成歌曲的自然度和人声清晰度。
546 3
SongGen:三秒克隆音色!开源AI一键生成专业级歌曲,创作人必备神器
|
11月前
|
数据采集
爬虫案例—抓取找歌词网站的按歌词找歌名数据
爬虫案例—抓取找歌词网站的按歌词找歌名数据
212 0
|
8月前
|
人工智能 运维 负载均衡
智能运维新时代:AI在云资源管理中的应用与实践
智能运维新时代:AI在云资源管理中的应用与实践
762 23
|
11月前
|
存储 数据采集 安全
CDAM数据资产管理的策略制定与落地
在数字化时代,数据成为企业的核心资产,直接影响决策效率与市场竞争力。本文探讨数据资产管理策略的制定与实施,涵盖目标设定、组织架构搭建、政策流程制定、工具技术应用、数据战略规划、人才培养、风险管理及持续优化等方面,旨在为企业提供全方位的实践指导。
|
Linux 开发者 iOS开发
ImportError: cannot import name ‘TypeAliasType‘ from ‘typing_extensions‘问题的解决
ImportError: cannot import name ‘TypeAliasType‘ from ‘typing_extensions‘问题的解决
977 0
|
安全 网络安全 网络虚拟化
虚拟网络设备的网络隔离机制:原理、意义与应用场景深度分析
虚拟网络设备在现代网络架构中扮演着重要角色🌐,尤其是在实现网络隔离方面🛡️。网络隔离是网络安全🔒和多租户环境管理的关键组成部分,它能够确保不同网络流量的分离🚦,保护敏感数据💾,减少攻击面。虚拟网络设备通过在软件层面上模拟物理网络设备的行为,提供了一种灵活且成本效益高的方式来实现这些目标。本文将从多个维度深入分析虚拟网络设备是如何隔离网络的,这种隔离有什么实际意义,为什么需要虚拟网络设备来隔离网络,以及在什么场景下比较适合使用虚拟网络设备隔离网络。
|
机器学习/深度学习 数据挖掘 PyTorch
使用Python实现长短时记忆网络(LSTM)的博客教程
使用Python实现长短时记忆网络(LSTM)的博客教程
1625 0