Python Browsing Directories Using walk Copyright © Software Carpentry and The University of Edinburgh 2010-2011 This work is licensed under the Creative Commons Attribution License See http://software-carpentry.org/license.html for more information. >>> from os import walk >>> tree = walk('.') Python Browsing Directories Using walk walk('.') A a1.txt a2.txt Python B b.txt C P Q p.txt q1.txt q2.txt c.txt Browsing Directories Using walk walk('.') A a1.txt a2.txt B b.txt C P Q p.txt q1.txt q2.txt c.txt . Python Browsing Directories Using walk walk('.') A B a1.txt a2.txt . Python b.txt C P Q p.txt q1.txt q2.txt c.txt ['C', 'A', 'B'] Browsing Directories Using walk walk('.') A B a1.txt a2.txt . Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] c.txt [] Browsing Directories Using walk walk('.') A B a1.txt a2.txt . Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] c.txt [] Browsing Directories Using walk A B a1.txt a2.txt . Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] walk('.') walk('./C') c.txt [] Browsing Directories Using walk A B a1.txt a2.txt . ./C Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] walk('.') walk('./C') c.txt [] Browsing Directories Using walk A B a1.txt a2.txt . ./C Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] walk('.') walk('./C') c.txt [] Browsing Directories Using walk A B a1.txt a2.txt . ./C Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] walk('.') walk('./C') c.txt [] ['c.txt'] Browsing Directories Using walk A B a1.txt a2.txt . ./C Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] walk('.') walk('./C') c.txt [] ['c.txt'] Browsing Directories Using walk walk('.') A B a1.txt a2.txt . ./C Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] c.txt [] ['c.txt'] Browsing Directories Using walk A B a1.txt a2.txt . ./C Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] walk('.') walk('./A') c.txt [] ['c.txt'] Browsing Directories Using walk A B a1.txt a2.txt . ./C ./A Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] [] walk('.') walk('./A') c.txt [] ['c.txt'] ['a1.txt', 'a2.txt'] Browsing Directories Using walk A B a1.txt a2.txt . ./C ./A Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] [] walk('.') walk('./A') c.txt [] ['c.txt'] ['a1.txt', 'a2.txt'] Browsing Directories Using walk walk('.') A B a1.txt a2.txt . ./C ./A Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] [] c.txt [] ['c.txt'] ['a1.txt', 'a2.txt'] Browsing Directories Using walk A B a1.txt a2.txt . ./C ./A Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] [] walk('.') walk('./B') c.txt [] ['c.txt'] ['a1.txt', 'a2.txt'] Browsing Directories Using walk A B a1.txt a2.txt . ./C ./A ./B Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] [] ['P', 'Q'] walk('.') walk('./B') c.txt [] ['c.txt'] ['a1.txt', 'a2.txt'] ['b.txt'] Browsing Directories Using walk A B a1.txt a2.txt . ./C ./A ./B Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] [] ['P', 'Q'] walk('.') walk('./B') c.txt [] ['c.txt'] ['a1.txt', 'a2.txt'] ['b.txt'] Browsing Directories Using walk A B C walk('.') walk('./B') walk('./B/P') a1.txt a2.txt . ./C ./A ./B Python b.txt P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] [] ['P', 'Q'] c.txt [] ['c.txt'] ['a1.txt', 'a2.txt'] ['b.txt'] Browsing Directories Using walk A B C walk('.') walk('./B') walk('./B/P') a1.txt a2.txt . ./C ./A ./B ./B/P Python b.txt P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] [] ['P', 'Q'] [] c.txt [] ['c.txt'] ['a1.txt', 'a2.txt'] ['b.txt'] ['p.txt'] Browsing Directories Using walk A B a1.txt a2.txt . ./C ./A ./B ./B/P Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] [] ['P', 'Q'] [] walk('.') walk('./B') c.txt [] ['c.txt'] ['a1.txt', 'a2.txt'] ['b.txt'] ['p.txt'] Browsing Directories Using walk A B C walk('.') walk('./B') walk('./B/Q') a1.txt a2.txt . ./C ./A ./B ./B/P ./B/Q Python b.txt P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] [] ['P', 'Q'] [] [] c.txt [] ['c.txt'] ['a1.txt', 'a2.txt'] ['b.txt'] ['p.txt'] ['q1.txt' 'q2.txt'] Browsing Directories Using walk A B a1.txt a2.txt . ./C ./A ./B ./B/P ./B/Q Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] [] ['P', 'Q'] [] [] walk('.') walk('./B') c.txt [] ['c.txt'] ['a1.txt', 'a2.txt'] ['b.txt'] ['p.txt'] ['q1.txt' 'q2.txt'] Browsing Directories Using walk walk('.') A B a1.txt a2.txt . ./C ./A ./B ./B/P ./B/Q Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] [] ['P', 'Q'] [] [] c.txt [] ['c.txt'] ['a1.txt', 'a2.txt'] ['b.txt'] ['p.txt'] ['q1.txt' 'q2.txt'] Browsing Directories Using walk walk('.') A B a1.txt a2.txt . ./C ./A ./B ./B/P ./B/Q Python b.txt C P Q p.txt q1.txt q2.txt ['C', 'A', 'B'] [] [] ['P', 'Q'] [] [] c.txt [] ['c.txt'] ['a1.txt', 'a2.txt'] ['b.txt'] ['p.txt'] ['q1.txt' 'q2.txt'] Browsing Directories Using walk >>> from os import walk >>> tree = walk('.') Python Browsing Directories Using walk >>> from os import walk >>> tree = walk('.') Python walk returns a list of tuples Browsing Directories Using walk >>> from os import walk >>> tree = walk('.') >>> for dir,subdirs,files in tree: ... print "%s %s %s" %(dir,subdirs,files) ... Python Browsing Directories Using walk >>> from os import walk >>> tree = walk('.') >>> for dir,subdirs,files in tree: ... print "%s %s %s" %(dir,subdirs,files) ... . ['C', 'A', 'B'] [] ./C [] ['c.txt'] ./A [] ['a1.txt', 'a2.txt'] ./B ['P', 'Q'] ['b.txt'] ./B/P [] ['p.txt'] ./B/Q [] ['q1.txt' 'q2.txt'] Python Browsing Directories Using walk >>> from os import walk >>> tree = walk('.') Each tuple contains a directory >>> for dir,subdirs,files in tree: ... print "%s %s %s" %(dir,subdirs,files) ... . ['C', 'A', 'B'] [] ./C [] ['c.txt'] ./A [] ['a1.txt', 'a2.txt'] ./B ['P', 'Q'] ['b.txt'] ./B/P [] ['p.txt'] ./B/Q [] ['q1.txt' 'q2.txt'] Python Browsing Directories Using walk >>> from os import walk >>> tree = walk('.') Each tuple contains a directory, its subdirectories >>> for dir,subdirs,files in tree: ... print "%s %s %s" %(dir,subdirs,files) ... . ['C', 'A', 'B'] [] ./C [] ['c.txt'] ./A [] ['a1.txt', 'a2.txt'] ./B ['P', 'Q'] ['b.txt'] ./B/P [] ['p.txt'] ./B/Q [] ['q1.txt' 'q2.txt'] Python Browsing Directories Using walk >>> from os import walk >>> tree = walk('.') Each tuple contains a directory, its subdirectories, and its files >>> for dir,subdirs,files in tree: ... print "%s %s %s" %(dir,subdirs,files) ... . ['C', 'A', 'B'] [] ./C [] ['c.txt'] ./A [] ['a1.txt', 'a2.txt'] ./B ['P', 'Q'] ['b.txt'] ./B/P [] ['p.txt'] ./B/Q [] ['q1.txt' 'q2.txt'] Python Browsing Directories Using walk >>> from os import walk >>> tree = walk('.') >>> for dir,subdirs,files in tree: ... print "%s %s %s" %(dir,subdirs,files) ... . ['C', 'A', 'B'] [] ./C [] ['c.txt'] ./A [] ['a1.txt', 'a2.txt'] ./B ['P', 'Q'] ['b.txt'] walk’s input is used as a ./B/P [] ['p.txt'] ./B/Q [] ['q1.txt' 'q2.txt'] prefix for each directory name Python Browsing Directories Using walk >>> tree = walk(getcwd()) Python Browsing Directories Using walk >>> tree = walk(getcwd()) >>> for dir,subdirs,files in tree: ... print "%s %s %s" %(dir,subdirs,files) ... /user/vlad ['C', 'A', 'B'] [] /user/vlad/C [] ['c.txt'] /user/vlad/A [] ['a1.txt', 'a2.txt'] /user/vlad/B ['P', 'Q'] ['b.txt'] /user/vlad/B/P [] ['p.txt'] /user/vlad/B/Q [] ['q1.txt' 'q2.txt'] Python Browsing Directories Using walk >>> tree = walk(getcwd()) >>> for dir,subdirs,files in tree: ... print "%s %s %s" %(dir,subdirs,files) ... /user/vlad ['C', 'A', 'B'] [] /user/vlad/C [] ['c.txt'] /user/vlad/A [] ['a1.txt', 'a2.txt'] /user/vlad/B ['P', 'Q'] ['b.txt'] /user/vlad/B/P [] ['p.txt'] /user/vlad/B/Q [] ['q1.txt' 'q2.txt'] Python Browsing Directories Using walk >>> tree = walk(getcwd(), topdown=False) Python Browsing Directories Using walk >>> tree = walk(getcwd(), topdown=False) >>> for dir,subdirs,files in tree: ... print "%s %s %s" %(dir,subdirs,files) ... /user/vlad/C [] ['c.txt'] /user/vlad/A [] ['a1.txt', 'a2.txt'] /user/vlad/B/P [] ['p.txt'] /user/vlad/B/Q [] ['q1.txt' 'q2.txt'] /user/vlad/B ['P', 'Q'] ['b.txt'] /user/vlad ['C', 'A', 'B'] [] Python Browsing Directories Using walk >>> tree = walk(getcwd(), topdown=False) >>> for dir,subdirs,files in tree: ... print "%s %s %s" %(dir,subdirs,files) ... /user/vlad/C [] ['c.txt'] /user/vlad/A [] ['a1.txt', 'a2.txt'] /user/vlad/B/P [] ['p.txt'] P and Q are /user/vlad/B/Q [] ['q1.txt' 'q2.txt'] before B /user/vlad/B ['P', 'Q'] ['b.txt'] /user/vlad ['C', 'A', 'B'] [] Python Browsing Directories Using walk >>> tree = walk(getcwd(), topdown=False) >>> for dir,subdirs,files in tree: ... print "%s %s %s" %(dir,subdirs,files) ... /user/vlad/C [] ['c.txt'] /user/vlad/A [] ['a1.txt', 'a2.txt'] /user/vlad/B/P [] ['p.txt'] A, B and C /user/vlad/B/Q [] ['q1.txt' 'q2.txt'] are before the /user/vlad/B ['P', 'Q'] ['b.txt'] /user/vlad ['C', 'A', 'B'] [] original directory Python Browsing Directories Using walk os Miscellaneous operating system interfaces walk Recursively explore directory contents Python Browsing Directories Using walk created by Mike Jackson and Greg Wilson May 2011 Copyright © Software Carpentry and The University of Edinburgh 2010-2011 This work is licensed under the Creative Commons Attribution License See http://software-carpentry.org/license.html for more information.
© Copyright 2025 Paperzz