recursively remove all the directories and files which begin with '.'

Sean DiZazzo half.italian at gmail.com
Sun May 16 13:41:54 EDT 2010


On May 14, 8:27 am, albert kao <albertk... at gmail.com> wrote:
> On May 14, 11:01 am, J <dreadpiratej... at gmail.com> wrote:
>
>
>
> > On Fri, May 14, 2010 at 10:53, albert kao <albertk... at gmail.com> wrote:
>
> > > C:\python>rmdir.py
> > > C:\test\com.comp.hw.prod.proj.war\bin
> > > ['.svn', 'com']
> > > d .svn
> > > dotd C:\test\com.comp.hw.prod.proj.war\bin\.svn
> > > Traceback (most recent call last):
> > >  File "C:\python\rmdir.py", line 14, in <module>
> > >    rmtree(os.path.join(curdir, d))
> > >  File "C:\Python31\lib\shutil.py", line 235, in rmtree
> > >    onerror(os.remove, fullname, sys.exc_info())
> > >  File "C:\Python31\lib\shutil.py", line 233, in rmtree
> > >    os.remove(fullname)
> > > WindowsError: [Error 5] Access is denied: 'C:\\test\
> > > \com.comp.hw.prod.proj.war\\bin\\.svn\\entries'
>
> > > --
> > >http://mail.python.org/mailman/listinfo/python-list
>
> > You don't have permissions to remove the subdir or file entries in the
> > .svn directory...
>
> > Maybe that file is still open, or still has a lock attached to it?
>
> I reboot my windows computer and run this script as administrator.
> Do my script has a bug?

Are the directory or files marked as read only?

See this recipe and the comment from Chad Stryker:

http://code.activestate.com/recipes/193736-clean-up-a-directory-tree/

"Although it is true you can use shutil.rmtree() in many cases, there
are some cases where it does not work. For example, files that are
marked read-only under Windows cannot be deleted by shutil.rmtree().
By importing the win32api and win32con modules from PyWin32 and adding
line like "win32api.SetFileAttributes(path,
win32con.FILE_ATTRIBUTE_NORMAL" to the rmgeneric() function, this
obstacle can be overcome."

It might not be your problem, but if it is, this had me stumped for a
few weeks before I found this comment!

~Sean



More information about the Python-list mailing list