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的lambda匿名函数的简单介绍
Apr 25 Python
Python中函数的参数定义和可变参数用法实例分析
Jun 04 Python
浅述python中argsort()函数的实例用法
Mar 30 Python
Python代码实现KNN算法
Dec 20 Python
Django自定义用户认证示例详解
Mar 14 Python
python 多进程队列数据处理详解
Dec 23 Python
Python利用逻辑回归分类实现模板
Feb 15 Python
python+selenium+PhantomJS抓取网页动态加载内容
Feb 25 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
Pytorch实验常用代码段汇总
Nov 19 Python
Python实现的扫码工具居然这么好用!
Jun 07 Python
Pygame Draw绘图函数的具体使用
Nov 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
星际争霸任务指南——人族
2020/03/04 星际争霸
php中的时间处理
2006/10/09 PHP
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
jquery动态改变form属性提交表单
2014/06/03 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
分享一个自己动手写的jQuery分页插件
2014/08/28 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
创建一个类Person的简单实例
2016/05/17 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
[02:07]DOTA2新英雄展现中国元素,完美“圣典”亮相央视
2016/12/19 DOTA
python中的内置函数getattr()介绍及示例
2014/07/20 Python
Python实现的爬虫功能代码
2017/06/24 Python
python做反被爬保护的方法
2019/07/01 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
python中判断文件结束符的具体方法
2020/08/04 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
htnl5利用svg页面高斯模糊的方法
2018/07/20 HTML / CSS
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
银行演讲稿范文
2014/01/03 职场文书
三查三看党性分析材料
2014/02/18 职场文书
大学生就业策划书范文
2014/04/04 职场文书
学生请假条格式
2014/04/11 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
《赵州桥》教学反思
2016/02/17 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers