python实现在目录中查找指定文件的方法

yipeiwu_com6年前Python基础

本文实例讲述了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创建一个元素都为0的列表实例

实现创建一个元素都为0的列表: l=10 lis=[0]*l lis 输出结果: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 以上这篇Python创建一个元...

python和pygame实现简单俄罗斯方块游戏

python和pygame实现简单俄罗斯方块游戏

本文为大家分享了python实现俄罗斯方块游戏的具体代码,供大家参考,具体内容如下 Github:Tetris 代码: # -*- coding:utf-8 -*- import...

python使用wmi模块获取windows下的系统信息 监控系统

Python用WMI模块获取Windows系统的硬件信息:硬盘分区、使用情况,内存大小,CPU型号,当前运行的进程,自启动程序及位置,系统的版本等信息。 本文实例讲述了python使用...

Python求出0~100以内的所有素数

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 一、判断一个数是否为素数: 基于定义 def is_prime(num):...

python 读文件,然后转化为矩阵的实例

代码流程: 1. 从文件中读入数据。 2. 将数据转化成矩阵的形式。 3. 对于矩阵进行处理。 具体的python代码如下: - 文件路径需要设置正确。 - 字符串处理。 - 字符串数...