New submission from kryptomatrix <volker.weissm...@gmx.de>:

Consider the following program:

f = open("out.txt", "w")
f.write("abc\n")
exit(0)

Please note the absence of f.close().
The documentation 
https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files
says that you should use f.close() or with f = open(), but is not clear whether 
the program above without f.close() is guaranteed to write. The tutorial says:
"If you don’t explicitly close a file, Python’s garbage collector will 
eventually destroy the object and close the open file for you, but the file may 
stay open for a while. Another risk is that different Python implementations 
will do this clean-up at different times."
For me this sounds like even without f.close() the file is guaranteed to be 
written. If it is not guaranteed to be written, you should fix the 
documentation, if it is guaranteed to be written, then I will open another 
issue because the following program does not write into out.txt on my machine:

from sympy.core import AtomicExpr
class MyWeirdClass(AtomicExpr):
        def __init__(self):
                pass
f = open("out.txt", "w")
f.write("abc\n")
exit(0)

Note: sys.version is: "3.7.3 (default, Oct  7 2019, 12:56:13) \n[GCC 8.3.0]"

----------
assignee: docs@python
components: Documentation
messages: 355062
nosy: docs@python, kryptomatrix
priority: normal
severity: normal
status: open
title: open() and file.write() without file.close()
type: enhancement
versions: Python 3.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue38548>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to