There is something I can't figure out about the following code (using python 2.7.3):
def return_tree_files(rootpath, pattern): for root, dirs, files in os.walk(rootpath): i = [os.path.join(root, filename) for filename in fnmatch.filter(files, pattern)] return i I thought the function would return a list of lists of filenames in the rootpath and all subfolders. Instead I get only the filenames that match the pattern in the rootpath, it doesn't go into the subfolders. If I replace the last line with 'print i' instead of 'return i' I get output closer to what I expect but what I really want is a list of lists I can use elsewhere. I know I could collect these and append them but I am trying to understand list comprehensions and os.walk - but I have hit a wall. Why does the list comprehension only go down the rootpath once and stop, not walking to the subfolders? _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor