python实现在目录中查找指定文件的方法


Posted in Python onNovember 11, 2014

本文实例讲述了python实现在目录中查找指定文件的方法。分享给大家供大家参考。具体实现方法如下:

1. 模糊查找

import os

from glob import glob #用到了这个模块

def search_file(pattern, search_path=os.environ['PATH'], pathsep=os.pathsep):

    for path in search_path.split(os.pathsep):

        for match in glob(os.path.join(path, pattern)):

            yield match

if __name__ == '__main__':

    import sys

    if len(sys.argv)<2  or sys.argv[1].startswith('-'):#sys.argv[0]是当前路径,1开始是后面的参数

        print 'Use: %s <pattern>' % sys.argv[0]

        sys.exit(1)

    if len(sys.argv)>2:

        matchs = list(search_file(sys.argv[1],sys.argv[2]))

    else:

        matchs = list(search_file(sys.argv[1]))

    print '%d match' % len(matchs)

    for match in matchs:

        print match

2. 指定的文件名精确查找
import os,optparse

#1:精确查找

def search_file(filename, search_path=os.environ['PATH'], pathsep=os.pathsep):#os.pathsep是分隔符';'

    for path in search_path.split(os.pathsep):

        candidate = os.path.join(path, filename)#预选路径

        if os.path.isfile(candidate):

            yield os.path.abspath(candidate) #用生成器可以方便控制返回的数据.可以使用.next()等方法只返回下一个子项

def parse_args():#帮助提示

    usage = u'''这是一个查找文件夹路径中是否有文件指定文件的脚本,

第一个参数是要找的文件名,第二个是路径'''

    parser = optparse.OptionParser(usage)

    help = u'要查找的文件名字'

    parser.add_option('--filename', help=help)#type='int',

    help = u'查找的路径多个路径以;分隔'

    parser.add_option('--path', help=help, default='e:')

    options, args = parser.parse_args()

    return options, args

if __name__ == '__main__':

    options, args = parse_args()

    find_file = list(search_file(args[0], args[1]))

    if find_file:

        for file in find_file:

            print "Found File at %s" % file

    else:

        print "Not Found"

 
例子:在e:/py和e:/phpwww目录下找以a到d开头的.php的文件
E:py>python_cook [a-d]*.php e:/py;e:/phpwww
2 match
e:/phpwwwcurl.php
e:/phpwwwduoxiancheng.php

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python多线程扫描端口示例
Jan 16 Python
跟老齐学Python之一个免费的实验室
Sep 14 Python
基于python中theano库的线性回归
Aug 31 Python
用pycharm开发django项目示例代码
Oct 24 Python
python numpy实现文件存取的示例代码
May 26 Python
Python集中化管理平台Ansible介绍与YAML简介
Jun 12 Python
对Python中class和instance以及self的用法详解
Jun 26 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
Django Admin中增加导出Excel功能过程解析
Sep 04 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 Python
python 实现Requests发送带cookies的请求
Feb 08 Python
python lambda的使用详解
Feb 26 Python
Python实现list反转实例汇总
Nov 11 #Python
用python实现面向对像的ASP程序实例
Nov 10 #Python
python求列表交集的方法汇总
Nov 10 #Python
python实现删除文件与目录的方法
Nov 10 #Python
Python装饰器decorator用法实例
Nov 10 #Python
python中list循环语句用法实例
Nov 10 #Python
python中MySQLdb模块用法实例
Nov 10 #Python
You might like
destoon数据库表说明汇总
2014/07/15 PHP
php实现refresh刷新页面批量导入数据的方法
2014/12/23 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
2018/01/20 PHP
PHP钩子实现方法解析
2019/05/21 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
2019/08/23 PHP
tp5.1 框架数据库高级查询技巧实例总结
2020/05/25 PHP
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
Extjs学习过程中新手容易碰到的低级错误积累
2010/02/11 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
JavaScript实现移动端轮播效果
2017/06/06 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
python交互式图形编程实例(三)
2017/11/17 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
keras topN显示,自编写代码案例
2020/07/03 Python
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
美国知名的隐形眼镜电商:Contacts America
2019/11/19 全球购物
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
2012/09/08 面试题
入党申请人的自我鉴定
2013/12/01 职场文书
应用心理学个人的求职信
2013/12/08 职场文书
新闻专业毕业生英文求职信
2014/03/19 职场文书
大学生社会实践方案
2014/05/11 职场文书
质量在我心中演讲稿
2014/09/02 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
2016年教师节慰问信
2015/12/01 职场文书
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript