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 Trie树实现字典排序
Mar 28 Python
python处理圆角图片、圆形图片的例子
Apr 25 Python
python 生成器生成杨辉三角的方法(必看)
Apr 10 Python
Django自定义插件实现网站登录验证码功能
Apr 19 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
Feb 24 Python
python调用摄像头拍摄数据集
Jun 01 Python
使用pyecharts生成Echarts网页的实例
Aug 12 Python
python实现扫雷游戏
Mar 03 Python
Selenium常见异常解析及解决方案示范
Apr 10 Python
python列表的逆序遍历实现
Apr 20 Python
python进度条显示之tqmd模块
Aug 22 Python
python如何写个俄罗斯方块
Nov 06 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
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
PHP序列号生成函数和字符串替换函数代码
2012/06/07 PHP
PHP批量上传图片的具体实现方法介绍.
2014/02/26 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
PHP pear安装配置教程
2016/05/14 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
js中设置元素class的三种方法小结
2011/08/28 Javascript
纯js实现重发验证码按钮倒数功能
2015/04/21 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
2016/05/15 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
2016/12/27 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
js中的触发事件对象event.srcElement与event.target详解
2017/03/15 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
简单实现python聊天程序
2018/04/01 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
Django--权限Permissions的例子
2019/08/28 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
python dumps和loads区别详解
2020/02/04 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
2021/02/26 Python
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
如何提高SQL Server的安全性
2016/07/25 面试题
四年级学生评语大全
2014/04/21 职场文书
大学生求职信
2014/06/17 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
初中优秀学生评语
2014/12/29 职场文书
小英雄雨来观后感
2015/06/09 职场文书
防溺水主题班会教案
2015/08/12 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫