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实现一个简单的多线程TCP服务器的教程
May 05 Python
python fabric使用笔记
May 09 Python
使用Python的Bottle框架写一个简单的服务接口的示例
Aug 25 Python
使用Python实现BT种子和磁力链接的相互转换
Nov 09 Python
python3之模块psutil系统性能信息使用
May 30 Python
python实现自主查询实时天气
Jun 22 Python
Python3字符串encode与decode的讲解
Apr 02 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 Python
Python3的unicode编码转换成中文的问题及解决方案
Dec 10 Python
python实现低通滤波器代码
Feb 26 Python
神经网络训练采用gpu设置的方式
Mar 03 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
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
利用PHP命令行模式采集股票趋势信息
2016/08/09 PHP
关于laravel模板中生成URL的几种模式总结
2019/10/18 PHP
javascript css float属性的特殊写法
2008/11/13 Javascript
通过百度地图获取公交线路的站点坐标的js代码
2012/05/11 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
2014/02/08 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
Python中常见的数据类型小结
2015/08/29 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
Python从零开始创建区块链
2018/03/06 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
基于python实现坦克大战游戏
2020/10/27 Python
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
美国最好的钓鱼、狩猎和划船装备商店:Bass Pro Shops
2018/12/02 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
食品厂厂长岗位职责
2014/01/30 职场文书
机修工工作职责
2014/02/21 职场文书
美术学专业求职信
2014/07/23 职场文书
防火标语大全
2014/10/06 职场文书
情况说明书怎么写
2015/10/08 职场文书
MySQL中日期型单行函数代码详解
2021/06/21 MySQL
Flask response响应的具体使用
2021/07/15 Python