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 相关文章推荐
9种python web 程序的部署方式小结
Jun 30 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
Apr 05 Python
Python中使用dom模块生成XML文件示例
Apr 05 Python
Python 如何访问外围作用域中的变量
Sep 11 Python
为什么你还不懂得怎么使用Python协程
May 13 Python
python pytest进阶之fixture详解
Jun 27 Python
简单了解Django ContentType内置组件
Jul 23 Python
解析PyCharm Python运行权限问题
Jan 08 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
May 15 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
python爬取代理IP并进行有效的IP测试实现
Oct 09 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 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
PHP实现的简单mock json脚本分享
2015/02/10 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
IE下window.onresize 多次调用与死循环bug处理方法介绍
2013/11/12 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
javascript中undefined与null的区别
2015/08/16 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
Python中使用md5sum检查目录中相同文件代码分享
2015/02/02 Python
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
Python实现简单的HttpServer服务器示例
2017/09/25 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
Python timeit模块的使用实践
2020/01/13 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
复古风格的女装和装饰品:ModCloth
2017/12/29 全球购物
简历中的自我评价怎么写
2014/01/29 职场文书
幼儿园中班上学期评语
2014/04/18 职场文书
校园活动策划方案
2014/06/13 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
烟台的海导游词
2015/02/02 职场文书
个人德育工作总结
2015/03/05 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js