Dani wrote:
Is it correct that low-level file handles are not being closed after
doing
fd = open(filepath)
fd.close()
no, you are not correct.
Demonstration:
Cmd window #1:
c:\temp> echo hello world > x.txt
Cmd window #2
c:\temp> python
Python 2.4.3 (#69, Mar 29 2006, 17:35:34) [MSC v.1310 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more
information.
>>> f = file('x.txt')
>>> f.close()
>>> # remaining in an open python session
back to Cmd window #1
C:\temp> del x.txt
C:\temp> rem note...no error here.
C:\temp> exit
back to Cmd window #2
>>> # quit python
>>> ^Z
C:\temp> exit
If so, what is the rationale?
it's not because there is no good rationale for wanting that
behavior :) The above was performed on XP (SP2 & SP3) with no
issues. I can't guarantee that MS hasn't borked something in
Vista or Win7, but if they did, that's *their* issue, not Python's.
This seems to result in system errors when trying to (re-)move or
reopen "closed" files, as well as when opening (and closing) too many
files under Windows.
As always, check your own code/environment before assuming the
problem is with Python. In all likelihood, you had the file open
in another window/process and didn't remember. Perhaps some
background indexing process happened to hold the file open for a
brief spell?
-tkc
--
http://mail.python.org/mailman/listinfo/python-list