Python 遍历目录找出包含指定字符串的文件夹

python编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径 解决思路 对于像我这种刚开始入门计算机的人,解决问题最关键的是思路的学习,很多时候代码,一看就懂,一写就废。 像这个题目,我们可以用程序的思维,一步一步去解决,将问题细分,细分成你能够解决的问题然后再处理问题,这样看似一个无法下手的题目,就变得可以下手 搜索出当前目录下的文件(不包括子目录的文件),并打印文件名 搜索出当前目录下的所有文件(包括子目录的文件),并打印文件名 搜索出当前目录下的所有... 阅读详情

题目:编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径


题目不难,但是初接触Python,对函数不够熟悉,犯了不少错误。总结如下:

os.path.isdir()方法应该传入带绝对路径的文件名,如:r'e:\java',如果只是传入文件名,如'java',该方法只会在当前工作目录(可以用os.getcwd()查看)下查找有没有同名文件夹,有则返回true

os.listdir()方法只返回文件名,需要自己用os.path.join()方法拼接出绝对路径。

os.path.realpath()获取绝对路径,该方法会将传入的文件名与当前工作目录拼接出绝对路径。如果要使用这个方法,必须先用os.chdir()改变当前工作目录!建议优先用os.path.join()。

os.path.relpath()获取相对路径,如果不传入命名关键字参数start,如start = r'C:\python',则该方法会与根据当前工作目录计算相对路径,目录不同则报错。


非递归版本:

import os

dir = r'e:\java'
specify_str = 'm'

# 搜索指定目录
results = []
folders = [dir]

for folder in folders :
    # 把目录下所有文件夹存入待遍历的folders
    folders += [os.path.join(folder, x) for x in os.listdir(folder) \
                if os.path.isdir(os.path.join(folder, x))]

    # 把所有满足条件的文件的相对地址存入结果results
    results += [os.path.relpath(os.path.join(folder, x), start
Python 遍历文件夹中的指定类型文件 首先罗列一下os.path模块的相关函数: 1.判断型函数: exists() 指定路径(文件或者目录)是否存在 isabs() 指定路径是否为绝对路径 isdir() 指定路径是否存在且为一个目录 isfile() 指定路径是否存在且为一个文件 islink() 指定路径是否存在且为一个符号链接 ismount() 指定路径是否存在且为一个挂载点 阅读详情

相关推荐

python批量提取子文件夹下指定名称的文件

python批量提取子文件夹下指定名称的文件 最近使用数据集时遇到一个问题,需要把每个文件夹下第10张图片复制出来放到一个指定的文件夹里,手动复制太麻烦,所以找了点代码自己改了改。 目录 要提取每个子文件夹下名称后缀为_10.jpg的文件到一个新的文件夹中。 代码 import os import re import xlwt # 递归复制文件夹内的文件 def copyFiles(sourceDir, targetDir): for file in os.listdir(sourceDir):

qq_35498453的博客 4870

python 找出两个文件夹中文件名相同的文件

找出两个文件夹中文件名相同的文件 并把所需格式文件拷贝到另一个文件夹中 用python实现是比较简单的。 1.首先导入模块 import os import # 先说明下这两个模块的作用 os 是 operation system 的缩写 包含文件和目录操作 shutil是 shell utilities 的简写 包含文件的拷贝、删除、移动、压缩等操作 2.路径设置 strleft = “ left dir path” strRight = "right dir path" strDst ...

AI_Dev的博客 6943

python按行读取文件并找出其中指定字符串

主要介绍了python按行读取文件并找出其中指定字符串的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

vtk相机_分别用 VTK 体绘制和面绘制来实现医学图像三维重建;

序言,VTK介绍:VTK 全称为 The Visualization Toolkit (可视化工具),是一个开源、跨平台、自由获取、支持并行计算的图形应用函数;拥有3D 渲染的最新工具、提供3D交互模式以及2D绘图等。VTK 包含一个C++类库,目前提供了众多语言接口,例如 Java、Python、TCL;在三维函数库OpenGL 的基础上采用面向对象设计方法发展起来图形学基本概念和数据...

weixin_39665302的博客 688

修勾逃生巨人危机v10.9.9修改版:免广告无限内购与GM工具详解

游戏修改技术是通过对原版游戏程序进行代码层面的调整,实现特定功能的增强或限制解除。其核心原理涉及内存修改、资源替换和API拦截等技术手段,能够有效提升用户体验和测试效率。在移动游戏领域,免广告和无限内购是常见的技术实现方向,通过屏蔽广告SDK调用和修改内购验证逻辑,为用户提供更流畅的游戏体验。这类技术特别适合游戏开发者进行功能测试,以及玩家希望完整体验游戏内容而不受商业模式限制的场景。以修勾逃生巨人危机v10.9.9版本为例,该修改版集成了GM工具开启功能,通过特定操作路径即可激活调试面板,实现了广告去除和

weixin_30855099的博客 2599

《数据结构》04-树4 是否同一棵二叉搜索树

题目 给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。 输入格式: 输入包含若干组测试数据。每组数据的第1行给出两个正整数N (≤10)和L,分别是每个序列插入元素的个数和需要...

叫我皮卡丘 2012

SpringBoot 通过 JMS 集成 IBM MQ

IBM MQ 作为老牌的企业级消息中间件,虽然在当下云原生时代已不再是主流选择,但在金融、银行、保险等传统行业的核心业务系统中仍然占据着重要地位。这些行业对系统的稳定性、可靠性和事务一致性有着极高的要求,IBM MQ 正是在这些方面表现出色。尽管近年来 RabbitMQ、Apache Kafka 等新一代消息中间件在新兴项目中更受欢迎,但许多金融公司和大型企业仍在使用 IBM MQ 作为核心业务系统的消息传递基础设施。

小单的博客专栏 952

【实战】S7-PLCSIM Advanced V3.0 授权问题排查指南(Error Code:-30与LicenseNotFound深度解析)

本文深度解析S7-PLCSIM Advanced V3.0启动时遇到的Error Code:-30与LicenseNotFound报错问题。文章提供了一套系统性的排查指南,从检查WinPcap驱动兼容性、确保Automation License Manager服务运行,到正确安装浮动授权以及清理系统残留缓存,逐步解决授权链条中的各个环节故障,帮助用户彻底解决仿真环境启动失败的问题。

weixin_29185167的博客 721

【人工智能之深度学习】12. BERT微调实战:医疗文本分类的领域自适应技巧与工业级实现

摘要:医疗文本分类是自然语言处理在医疗健康领域的核心应用,可辅助疾病诊断、病历结构化和医疗质量监控。然而,医疗文本的专业术语密集、实体关系复杂及数据长尾分布等特性,导致通用BERT模型性能受限。本文系统阐述医疗文本分类的领域自适应技术,从理论原理到工业级实现展开全流程讲解。首先分析医疗文本的独特属性及技术挑战;随后详解领域继续预训练、适配器微调、对抗训练等核心技术的数学原理;构建包含数据预处理、模型优化、隐私保护的完整实战架构;通过疾病分类、情感分析、事件检测三大案例验证技术有效性。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1005

华为OD机试双机位C卷-组装新的数组(Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【组装新的数组】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 组装新的数组。

qq_45776114的博客 1145

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

上一篇: 女生找对象与正则表达式(通配符)
下一篇: 自己写的实用VBA代码合集√
KingLearnJava
博客等级 码龄12年 93粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值