X-Git-Url: http://gitweb.michael.orlitzky.com/?p=dead%2Fcensus-tools.git;a=blobdiff_plain;f=src%2FFileUtils.py;h=cf2df4e897c73f50b7e7bff88ef4e5af0c5d893f;hp=2b89adf35365e589ef405e41dbcf3935d17222a0;hb=226986f4ad9de637ec22b5ee1436f0a365aaf808;hpb=7910222e257368cd534f5334085f008c36e288c6 diff --git a/src/FileUtils.py b/src/FileUtils.py index 2b89adf..cf2df4e 100644 --- a/src/FileUtils.py +++ b/src/FileUtils.py @@ -27,3 +27,24 @@ def mkdir_p(path, mode): except: pass + + +def find_file_paths(root, target_filename, return_first = False): + """ + Search beneath root for files named target_filename. If + return_first is True, then return as soon as a match is + found. Otherwise, return once all matching paths have been + found. Either way, the result is a list containing all matched + paths (even if we only matched one). + """ + found_files = [] + + for folder, subfolders, files in os.walk(root): + for f in files: + if (f == target_filename): + if return_first: + return [os.path.join(folder, f)] + else: + found_files.append(os.path.join(folder, f)) + + return found_files