diff -r 000000000000 -r ca70ae20a155 src/tools/fileutil.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/tools/fileutil.py Tue Feb 16 10:07:05 2010 +0530 @@ -0,0 +1,33 @@ +# Copyright (c) 2008 Nokia Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Lists all the files, with the absolute path, matching the specified pattern. +import os, fnmatch + +# From Python Cookbook, 2nd ed., by Alex Martelli, Anna Martelli +# Ravenscroft, and David Ascher (O'Reilly Media, 2005) 0-596-00797-3 +def all_files(root, patterns='*', single_level=False, yield_folders=False): + # Expand patterns from semicolon-separated string to list + patterns = patterns.split(';') + for path, subdirs, files in os.walk(root): + if yield_folders: + files.extend(subdirs) + files.sort() + for name in files: + for pattern in patterns: + if fnmatch.fnmatch(name, pattern): + yield os.path.join(path, name) + break + if single_level: + break