Transcript print

Python
Browsing Directories
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.
We can use Python to
Python
Browsing Directories
We can use Python to
– Save data to files
Python
Browsing Directories
We can use Python to
– Save data to files
– Read data from files
Python
Browsing Directories
We can use Python to
– Save data to files
– Read data from files
But we might also want to
Python
Browsing Directories
We can use Python to
– Save data to files
– Read data from files
But we might also want to
– See what files we have
Python
Browsing Directories
We can use Python to
– Save data to files
– Read data from files
But we might also want to
– See what files we have
– Delete files
Python
Browsing Directories
We can use Python to
– Save data to files
– Read data from files
But we might also want to
– See what files we have
– Delete files
– Group these into directories
Python
Browsing Directories
We can use Python to
– Save data to files
– Read data from files
But we might also want to
– See what files we have
– Delete files
– Group these into directories
– Structure these directories into a tree
Python
Browsing Directories
We could use the shell
Python
Browsing Directories
We could use the shell
Our program will be a mixture of
– Python
Python
Browsing Directories
We could use the shell
Our program will be a mixture of
– Python
– Shell commands
Python
Browsing Directories
We could use the shell
Our program will be a mixture of
– Python
– Shell commands
This is not portable
Python
Browsing Directories
We could use the shell
Our program will be a mixture of
– Python
– Shell commands
This is not portable
Do it all in Python
Python
Browsing Directories
>>> from os import getcwd
Import getcwd
from the os module
Python
Browsing Directories
>>> from os import getcwd
>>> getcwd()
Python
Browsing Directories
>>> from os import getcwd
>>> getcwd()
'/users/vlad'
Python
Current working directory
Browsing Directories
>>> from os import getcwd
>>> getcwd()
'/users/vlad'
>>> originaldir = getcwd()
Python
Save the current working
directory in a variable
Browsing Directories
>>> from os import getcwd
>>> getcwd()
'/users/vlad'
>>> originaldir = getcwd()
>>> print originaldir
Python
Use the variable
Browsing Directories
>>> from os import getcwd
>>> getcwd()
'/users/vlad'
>>> originaldir = getcwd()
>>> print originaldir
/users/vlad
Python
Browsing Directories
>>> from os import listdir
Python
Browsing Directories
>>> from os import listdir
>>> listdir('.')
vlad
bin
data
pizza.cfg
Python
mail
music
notes.txt
solar
solar.pdf
swc
papers
Browsing Directories
>>> from os import listdir
>>> listdir('.')
Current working directory
vlad
bin
data
pizza.cfg
Python
mail
music
notes.txt
solar
solar.pdf
swc
papers
Browsing Directories
>>> from os import listdir
>>> listdir('.')
['solar', 'mail', 'pizza.cfg', 'notes.txt',
'swc', 'data', 'papers', 'solar.pdf',
'bin', 'music']
vlad
bin
data
pizza.cfg
Python
mail
music
notes.txt
solar
solar.pdf
swc
papers
Browsing Directories
>>> from os import listdir
>>> listdir('.')
['solar', 'mail', 'pizza.cfg', 'notes.txt',
'swc', 'data', 'papers', 'solar.pdf',
'bin', 'music']
vlad
bin
data
pizza.cfg
Python
mail
music
notes.txt
solar
solar.pdf
swc
papers
Browsing Directories
>>> listdir('.')
Python
Browsing Directories
>>> listdir(getcwd())
Python
Use the result of getcwd
as the input directory
to listdir
Browsing Directories
>>> listdir(getcwd())
['solar', 'mail', 'pizza.cfg', 'notes.txt',
'swc', 'data', 'papers', 'solar.pdf',
'bin', 'music']
Python
Browsing Directories
>>> listdir(originaldir)
Python
Use a variable as the
input directory to listdir
Browsing Directories
Use a variable as the
>>> listdir(originaldir)
input directory to listdir
['solar', 'mail', 'pizza.cfg', 'notes.txt',
'swc', 'data', 'papers', 'solar.pdf',
'bin', 'music']
Python
Browsing Directories
>>> listdir(originaldir)
['solar', 'mail', 'pizza.cfg', 'notes.txt',
'swc', 'data', 'papers', 'solar.pdf',
'bin', 'music']
>>> files = listdir(originaldir)
Python
Browsing Directories
>>> listdir(originaldir)
['solar', 'mail', 'pizza.cfg', 'notes.txt',
'swc', 'data', 'papers', 'solar.pdf',
'bin', 'music']
>>> files = listdir(originaldir)
>>> print files
Python
Browsing Directories
>>> listdir(originaldir)
['solar', 'mail', 'pizza.cfg', 'notes.txt',
'swc', 'data', 'papers', 'solar.pdf',
'bin', 'music']
>>> files = listdir(originaldir)
>>> print files
['solar', 'mail', 'pizza.cfg', 'notes.txt',
'swc', 'data', 'papers', 'solar.pdf',
'bin', 'music']
Python
Browsing Directories
>>> for file in files:
Python
Remember the colon
Browsing Directories
>>> for file in files:
...
print file
Remember the 4 spaces
Python
Browsing Directories
>>> for file in files:
...
print file
...
Remember RETURN to close the loop
Python
Browsing Directories
>>> for file in files:
...
print file
...
solar
mail
pizza.cfg
notes.txt
swc
data
bin
data
papers
solar.pdf
bin
pizza.cfg
music
Python
vlad
mail
music
notes.txt
solar
solar.pdf
swc
papers
Browsing Directories
>>> getcwd()
'/users/vlad'
>>> from os import chdir
Python
Browsing Directories
>>> getcwd()
'/users/vlad'
>>> from os import chdir
>>> chdir('data')
Python
Browsing Directories
>>> getcwd()
'/users/vlad'
>>> from os import chdir
>>> chdir('data')
>>> getcwd()
Python
Browsing Directories
>>> getcwd()
'/users/vlad'
>>> from os import chdir
>>> chdir('data')
>>> getcwd()
'/users/vlad/data'
Python
chdir changes the current
working directory
Browsing Directories
>>> getcwd()
'/users/vlad'
>>> from os import chdir
>>> chdir('data')
>>> getcwd()
'/users/vlad/data'
>>> listdir(getcwd())
Python
Browsing Directories
>>> getcwd()
'/users/vlad'
>>> from os import chdir
>>> chdir('data')
>>> getcwd()
'/users/vlad/data'
>>> listdir(getcwd())
['morse.txt', 'pdb', 'planets.txt',
'amino_acids.txt', 'elements', 'sunspot.txt']
Python
Browsing Directories
>>> getcwd()
'/users/vlad'
>>> from os import chdir
>>> chdir('data')
>>> getcwd()
'/users/vlad/data'
>>> listdir(getcwd())
['morse.txt', 'pdb', 'planets.txt',
'amino_acids.txt', 'elements', 'sunspot.txt']
>>> chdir(originaldir)
Python
Browsing Directories
>>> getcwd()
'/users/vlad'
>>> from os import chdir
>>> chdir('data')
>>> getcwd()
'/users/vlad/data'
>>> listdir(getcwd())
['morse.txt', 'pdb', 'planets.txt',
'amino_acids.txt', 'elements', 'sunspot.txt']
>>> chdir(originaldir)
>>> getcwd()
Python
Browsing Directories
>>> getcwd()
'/users/vlad'
>>> from os import chdir
>>> chdir('data')
>>> getcwd()
'/users/vlad/data'
>>> listdir(getcwd())
['morse.txt', 'pdb', 'planets.txt',
'amino_acids.txt', 'elements', 'sunspot.txt']
>>> chdir(originaldir)
>>> getcwd()
'/users/vlad'
Python
Browsing Directories
>>> chdir('data')
root
/
bin
data
users
tmp
imhotep
larry
vlad
data
Python
Browsing Directories
>>> chdir('data')
>>> getcwd()
root
/
bin
data
users
tmp
imhotep
larry
vlad
data
Python
Browsing Directories
>>> chdir('data')
>>> getcwd()
'/users/vlad/data'
root
/
bin
What Python considers to be
the current working directory
Python
data
users
tmp
imhotep
larry
vlad
data
Browsing Directories
>>> chdir('data')
>>> getcwd()
'/users/vlad/data'
>>> CTRL-D
root
/
bin
What Python considers to be
the current working directory
Python
data
users
tmp
imhotep
larry
vlad
data
Browsing Directories
>>> chdir('data')
>>> getcwd()
'/users/vlad/data'
>>> CTRL-D
$ pwd
What Python considers to be
the current working directory
Python
root
/
bin
data
users
tmp
imhotep
larry
vlad
data
Browsing Directories
>>> chdir('data')
>>> getcwd()
'/users/vlad/data'
>>> CTRL-D
$ pwd
'/users/vlad'
What the shell considers to be
the current working directory
What Python considers to be
the current working directory
Python
root
/
bin
data
users
tmp
imhotep
larry
vlad
data
Browsing Directories
os
Miscellaneous operating system interfaces
getcwd
Get current working directory
listdir
List directory contents
chdir
Change directory
Python
Browsing Directories
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.