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表达式使用方法
Feb 12 Python
python递归计算N!的方法
May 05 Python
简介Django中内置的一些中间件
Jul 24 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
Jun 23 Python
Python列出一个文件夹及其子目录的所有文件
Jun 30 Python
Python实现的简单计算器功能详解
Aug 25 Python
Python面向对象之类和对象属性的增删改查操作示例
Dec 14 Python
Python+PyQT5的子线程更新UI界面的实例
Jun 14 Python
python PIL/cv2/base64相互转换实例
Jan 09 Python
如何安装并在pycharm使用selenium的方法
Apr 30 Python
python 实现弹球游戏的示例代码
Nov 17 Python
python Zmail模块简介与使用示例
Dec 19 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中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
PHP获取网页所有连接的方法(附demo源码下载)
2016/03/30 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
javascript 表单验证常见正则
2009/09/28 Javascript
jQuery 页面 Mask实现代码
2010/01/09 Javascript
JS trim去空格的最佳实践
2011/10/30 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
简介JavaScript中valueOf()方法的使用
2015/06/05 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
解决jQuery使用append添加的元素事件无效的问题
2018/08/30 jQuery
vue使用微信扫一扫功能的实现代码
2020/04/11 Javascript
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
python time模块用法实例详解
2014/09/11 Python
python下10个简单实例代码
2017/11/15 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
python之随机数函数的实现示例
2020/12/30 Python
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
THE OUTNET美国官网:国际设计师品牌折扣网站
2017/03/07 全球购物
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
年终考核评语
2014/01/19 职场文书
服务员岗位责任制
2014/02/11 职场文书
元宵节寄语大全
2015/02/27 职场文书
2015年个人招商工作总结
2015/04/25 职场文书
2015年高校图书馆工作总结
2015/04/30 职场文书
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS