Walk thru each subdirectory from a top directory

Sick Monkey sickcodemonkey at gmail.com
Mon Feb 26 16:42:14 EST 2007


I had a do something similar.  I had to get a program to traverse through a
directory and delete all files with a specific file extension.  (The program
below will delete files, so I do not recommend you running it without paying
close attention to it.)

This program will start at a given directory and will traverse thru the
subdirectories by using "listdir".
+++++++++++++++++++++++++++++++++++
#!/usr/bin/python -u

import sys, time
from os import listdir, unlink
from os.path import isdir, isfile, islink, join, getmtime
deldir = "C:\some\Dir"
delFileType = ".txt"
# -------------------------------------
def del_entry(_name):
        try:
                if isdir(_name):
                        print "This is a directory, do nothing."
                else:
                        #print "now"
                        unlink(_name) # or remove(_name)
                        sys.stdout.write("Delete FILE %s\n" % (_name))
        except IOError:
                sys.stderr.write("Cannot delete %s\n" % (_name))
# -------------------------------------
def list_dir(_dir,_action):
        if not isdir(_dir):
                print "%s is not a directory" % (_dir)
                return

        for file in listdir(_dir):
                path = join(_dir, file)
                if isdir(path):
                        list_dir(path, _action)
                else:
                        if path.rfind(delFileType) != -1:
                                #print path
                                _action(path)
# -------------------------------------
# Run it
list_dir(deldir, del_entry)

On 26 Feb 2007 13:28:20 -0800, silverburgh.meryl at gmail.com <
silverburgh.meryl at gmail.com> wrote:
>
>
> i am trying to use python to walk thru each subdirectory from a top
> directory.  Here is my script:
>
> savedPagesDirectory = "/home/meryl/saved_pages/data"
>
> dir=open(savedPagesDirectory, 'r')
>
> for file in dir:
>     if (isdir(file)):
>         # get the full path of the file
>         fileName = savedPagesDirectory + file + 'index.html'
>         print fileName
>
> $ ./scripts/regressionTest.py
> Traceback (most recent call last):
>   File "./scripts/regressionTest.py", line 12, in ?
>     dir=open(savedPagesDirectory, 'r')
> IOError: [Errno 21] Is a directory
>
> But I get the above error:
>
> Can you please tell me what did I do wrong?
>
> Thank you.
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20070226/1f1f13ca/attachment.html>


More information about the Python-list mailing list