Thanks for pointing out the parameters for ignore_errors and an
onerror callback function.
I have been running this code for more than an year, and this is the
very first time I see the problem. We switched to the NFS mounted
storage though, but there is nothing unusual logged by the system in
the /var/log/messages.
I checked the permissions - the directory is still there and has
exactly the same permissions as other successfully copied and removed
directories (the very same process creates the directory and later
removes it). The directory is empty though - so the process removed
all the entries in it, then some kind of an error occured that
triggered the exception.
There are lots of similar directories that the process creates and
removes, but only one of them raised an exception.
Thanks,
Masha
--------------------
liu...@usc.edu
On Jul 10, 2009, at 5:10 PM, Tim Chase wrote:
shutil.rmtree(filename)
File "/usr/lib64/python2.5/shutil.py", line 178, in rmtree
onerror(os.rmdir, path, sys.exc_info())
File "/usr/lib64/python2.5/shutil.py", line 176, in rmtree
os.rmdir(path)
OSError: [Errno 39] Directory not empty: /path/to/my/dir
According to the documentation, shutil.rmtree should not care
about directory being not empty.
This sounds suspiciously like a permission issue. rmtree()
*should* walk the tree removing items *if it can*. If a file can't
be deleted, it treats it as an error. rmtree() takes parameters
for ignore_errors and an onerror callback function, so you can
catch these error conditions.
-tkc
--
http://mail.python.org/mailman/listinfo/python-list