[EMAIL PROTECTED] wrote: > Can os.path.isfile(x) ever return True after os.remove(x) has > successfully completed? (Windows 2003, Python 2.3) > > We had a couple of failures in a server application that we cannot yet > reproduce in a simple case. Analysis of the code suggests that the > only possible explanation is that the following occurs, > > os.remove(x) > .... stuff > if os.path.isfile(x): > raise "Ooops, how did we get here?" > file(x, "wb").write(content) > > We end up in the raise. By the time we get to look at the system the > file is actually gone, presumably because of the os.remove. > > The "stuff" is a handful of lines of code which don't take any > significant time to perform. There are no "try" blocks to mask a > failure in the os.remove call. > > > The application is multithreaded so it is possible that another thread > writes to the file between the "remove" and the "isfile", but at the > end of the failure the file is actually not on the filesystem and I > don't believe there is a way that the file could be removed again in > this scenario.
Is the file on a network drive by any chance? Diez -- http://mail.python.org/mailman/listinfo/python-list