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 相关文章推荐
tensorflow TFRecords文件的生成和读取的方法
Feb 06 Python
Django使用详解:ORM 的反向查找(related_name)
May 30 Python
virtualenv 指定 python 解释器的版本方法
Oct 25 Python
在Python中pandas.DataFrame重置索引名称的实例
Nov 06 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
May 07 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
win8.1安装Python 2.7版环境图文详解
Jul 01 Python
Django框架模板用法入门教程
Nov 04 Python
关于Python3 lambda函数的深入浅出
Nov 27 Python
Python greenlet和gevent使用代码示例解析
Apr 01 Python
Python opencv相机标定实现原理及步骤详解
Apr 09 Python
Python实现爬取网页中动态加载的数据
Aug 17 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
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
PHP 输出缓存详解
2009/06/20 PHP
php 正确解码javascript中通过escape编码后的字符
2010/01/28 PHP
如何让CI框架支持service层
2014/10/29 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
通过Mootools 1.2来操纵HTML DOM元素
2009/09/15 Javascript
javascript中length属性的探索
2011/07/31 Javascript
javascript小数四舍五入多种方法实现
2012/12/23 Javascript
jQuery取得select选择的文本与值的示例
2013/12/09 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python实现的简单文本类游戏实例
2015/04/28 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
英国电子专家:maplin
2019/09/04 全球购物
中专生自我鉴定
2013/12/17 职场文书
捐书寄语赠言
2014/01/18 职场文书
2014年化验员工作总结
2014/11/18 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
三十年同学聚会感言
2015/07/30 职场文书
家访教师心得体会
2016/01/23 职场文书