首页 > 代码库 > Match files that match pattern in Groovy and Python

Match files that match pattern in Groovy and Python

转自: http://atobs.blogspot.fr/2012/08/match-only-files-that-match-pattern-in.html#!/2012/08/match-only-files-that-match-pattern-in.html

Groovy:
In Groovy we can use the eachDirRecurse and eachFileMatch() methods to get all the file names displayed.

def pattern = ~/.*\.java/
def dirname="/usr/local/mysource"

new File("$dirname").eachDirRecurse { dir ->

        dir.eachFileMatch(pattern) {    myfile ->
                println  "$myfile"
        } // eachFileMatch

} // eachFileMatch


Python:
In Python,  we can list each matching file using "glob"

import os, glob, sys

for root, dirs, files in os.walk( ‘E:\\users‘ ):
    os.chdir (root)

    # find all files that match log*
    logs = glob.glob( ‘*log*‘ )
    if logs:
        for fname in logs:
            fullpath = os.path.join ( root, fname )
            # Identify files of len 3 lines long and delete them
            count  = len ( open(fullpath).readlines() )
            if count == 3 or count == 2:
                print  ‘Removing ‘, fullpath
os.remove ( fullpath )

Match files that match pattern in Groovy and Python