deltree function
gangli at msn.com
gangli at msn.com
Fri Sep 8 16:27:20 EDT 2000
In article <39b7ed8b.36840425 at news.bright.net>,
jonadab at bright.net (Jonadab the Unsightly One) wrote:
> "Warren Postma" <embed at NOSPAM.geocities.com> wrote:
>
> > On unix I'd just shell out and execute "rm -rf". On windows, the
same might
> > work, since you could always go get the rm.exe program from
Microsoft's NT
> > Resource Toolkit.
>
> Or, rather than downloading something, you could just shell out
> to deltree. You can get around the "Are you sure?" prompt by
> redirecting or piping its input.
>
> - jonadab
>
why not use a python function that works everywhere
see following one( though, it is a littl slower than NT rmdir/s
because isdir takes half time):
from sys import stderr
from os import listdir, remove, rmdir
from os.path import isdir, islink
DIR_EXCLUDES = ('.', '..')
def delete_dir_tree(topdir, verbose=0):
"""
force to detele whole directory tree.
uses with caution
"""
if verbose:
print "deleting directory:", topdir
try:
dirs = listdir(topdir)
except OSError, why:
stderr.write('%s, When delete directory: %s\n'%(why, topdir))
return
for dir in dirs:
if dir in DIR_EXCLUDES:
continue
fpath = topdir+'/'+dir
if islink(fpath) or not isdir(fpath):
try:
if verbose > 1:
print "deleting file:", fpath
remove(fpath)
except OSError, why:
stderr.write('%s, When delete file: %s\n'%(why, fpath))
else:
delete_dir_tree(fpath, verbose)
try:
rmdir(topdir)
except OSError, why:
stderr.write('%s, When delete directory: %s\n'%(why, topdir))
Sent via Deja.com http://www.deja.com/
Before you buy.
More information about the Python-list
mailing list