c.txt - Software Carpentry

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.