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 )