recursively removing files and directories

Sick Monkey sickcodemonkey at gmail.com
Mon Apr 9 23:08:22 CEST 2007


Here is some code that could be useful....  It does not check the
directories for 0 files, but that shouldn't be too difficult to add.

#############################################
from os import listdir, unlink
from os.path import isdir, isfile, islink, join, getmtime
deldir = "C:\Some\Dir"
delFileType = ".txt"    # or You could use Regex.
# -------------------------------------
def del_entry(_name):
        try:
                if isdir(_name):
                        print "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:
                        # isfile() or islink()
                        if path.rfind(delFileType) != -1:
                                #print path
                                _action(path)
# Run it
list_dir(deldir, del_entry)
#############################################


On 9 Apr 2007 11:44:10 -0700, bahoo <b83503104 at yahoo.com> wrote:
>
> Hi,
>
> I found a message on Jan 16, 2006 regarding the same topic, except
> that I wanted to remove only certain files that satisfy the format
> "ABC_XXX_XXX.dat", but not the other files.  Once the files are
> removed, if a folder becomes empty, I want to remove the folder as
> well.
>
> The solution to the Jan 16 2006 message required many lines of python
> code.  I was wondering if there is a simpler solution to my problem at
> hand, perhaps by using more specialized functions?
>
> Thanks!
> bahoo
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20070409/d94e8b5e/attachment.html>


More information about the Python-list mailing list