I tried something not exactly like this, but in the same spirit. I don't generally have a list of files I want to delete - just one. I try to delete it and if I get errno 13 I sleep for a little while (0.2) and then try again. If the same problem then I add 1 sec to the sleep time and try again. After sleeping about 10 sec total I give up.
Unfortunately, one of my testers still experiences the problem even with this fix. I am surprised that a virus checker or file indexer would hold onto a file for so long. Ugh. Patrick Maupin wrote: > Tim Peters wrote: > > > In that case, anything that burns some time and tries again > > will work better. Replacing gc.collect() with time.sleep() is > > an easy way to test that hypothesis; because gc.collect() > > does an all-generations collection, it can consume measurable time. > > An slight enhancement to this hypothesis-tester (which might even > approach being production-worthy) would be to maintain a list of items > which were not deleted on a particular pass. Sleep after each pass, > then try to kill all the items on the list again. Maintain a counter > of the number of passes which have been made since the last time the > undeleted item list shrank (via a completed deletion), and if the total > time exceeds 'x' or the number of passes since a completed deletion > exceeds 'y', then bail and ask the user to help you out. > > Regards, > Pat -- http://mail.python.org/mailman/listinfo/python-list