]> gitweb.michael.orlitzky.com - dead/census-tools.git/commitdiff
Added the find_file_paths function to the FileUtils module.
authorMichael Orlitzky <michael@orlitzky.com>
Fri, 13 Nov 2009 01:07:11 +0000 (20:07 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Fri, 13 Nov 2009 01:46:31 +0000 (20:46 -0500)
src/FileUtils.py

index 2b89adf35365e589ef405e41dbcf3935d17222a0..cf2df4e897c73f50b7e7bff88ef4e5af0c5d893f 100644 (file)
@@ -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