Martin v. Löwis wrote: > Carroll, Barry schrieb: >> What I want to know is: >> >> * has anyone else encountered a problem like this, * how was the >> problem corrected, * can the fix be retro-fitted to 2.5 and 2.4? > > From your description, I suspect an error in your code. Your description > indicates that you don't expect to have more than five files open > simultaneously. Yet, the error message "Too many open files" occurs when > you open many more files (in the order of hundreds of files). > > It is very unlikely that there is a bug in Python where it would fail to > close a file when .close() is explicitly invoked on it (as your > description suggests that you do), so if you get that error message, it > can only mean that you fail to close some files. > > Notice that you may have other files open, as well, and that those also > count towards the limit. > > As a debugging utility, you can use Sysinternal's process explorer. > Make the program halt (not exit) when the exception occurs (e.g. by > having it sleep(1) in a loop), then view all open handles in the > process explorer (check the menu if it doesn't display them initially). > > Regards, > Martin
I agree with Martin .. this code to close is solid. Make certain you are really closing the files when you think you should. I am pretty sure you are not. Look at the code that closes the files closely. Put a print statement in the block that is supposed to close the files (may bee even a raw_input("closing file" + afile) statement). My guess is that you won't see the print statements trigger when you though they should .. they may be out of "the loop" you thought that they were in. -- http://mail.python.org/mailman/listinfo/python-list