当前位置: 首页 > news >正文

Python Cookbook-2.18 从指定的搜索路径寻找文件

任务

给定一个搜索路径(一个描述目录信息的字符串),需要根据这个路径和请求的文件名找到第一个符合要求的文件。

解决方案

需要循环指定的搜索路径中的目录:

import os
def search_file(filename,search path,pathsep=os.pathsep):
"""给定一个搜索路径,根据请求的名字找到文件"""
	for path in search_path.split(pathsep):
		candidate = os.path.join(path,filename)
		if os.path.isfile(candidate):
			return os.path.abspath(candidate)
	return None
if __name__ == '__main__':
	search_path = '/bin' + os.pathsep + '/usr/bin'#;on Windows,:on UNIX
	find_file = search_file('ls',search_path)
	if find_file:
		print "File 'ls' found at %s" % find_file
	else:
		print "File 'ls' not found"

讨论

本节的任务是个很常见的需求,Python 对这个需求的解决办法也极其简单。本章其他一些节也会处理相似或相关的一些任务:见第2.20节,在Python自身的搜索路径中找文件,以及第 2.19节,在指定的搜索路径中根据匹配模式寻找文件。进行搜索的循环可以被写成很多形式,但一旦找到就立刻返回路径(这里用绝对路径主要基于统一性和方便性的考虑)是最简单的,而且速度很快。在循环完成之后显式地return None并不是必须的,因为在Python中一个函数执行完毕后会自行返回None。在这里画蛇添足的加一句retun语句,仅仅是为了让人能够一目了然地看清search_file的所做的事情。

相关文章:

  • Fractal Generative Models
  • 开启远程连接后还是连接不上
  • 活在AI原生时代的05后,开始用AI创业
  • Python 创建一个能够筛选文件的PDF合并工具
  • c语言基础
  • MySQL调优--12--分批插入/更新数据 ---案例2
  • 主流 AI 芯片配置
  • 第三章 组件(10)- CSS隔离
  • 【开源免费】基于SpringBoot+Vue.JS医院药品管理系统(JAVA毕业设计)
  • 细说 Java 线程池
  • 使用自动化运维工具 Ansible 集中化管理服务器
  • linux(rocky)设置更新服务器时间
  • 微前端架构深度解码:模块化拆解与联邦宇宙的构建
  • docker简介-学习与参考
  • 本地部署阿里万象2.1文生视频模型(Wan2.1-T2V)完全指南
  • 高性能模拟计算:让计算更快、更智能
  • iOS开发之最新Demo上传Github步骤(2025.02.28)
  • 深度学习之-“全连接网络的反向传播”
  • FFmpeg-chapter3-读取视频流(原理篇)
  • 网络原理 初识[Java EE]
  • 兰州做网站改版的公司/引流推广平台
  • 制作团购网站/域名备案查询
  • 电商网站运营团队建设方案/it培训学校
  • 网站有域名没备案/互联网广告是做什么的
  • 网站平台需要做无形资产吗 怎么做6/临沂网站建设方案服务
  • 东莞最好的网站建设/seo的优化策略有哪些