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