On 4/8/2021 4:43 PM, Antoine Pitrou wrote:
I think capturing the intent is important, rather than just putting .close() followed by .open(). Maybe a name that embodies "reopen for reading without deleting" would make the intent clear? Maybe .reopen() already captures that. Anyway, +1 for a method that combines the close/open.On Thu, 8 Apr 2021 13:31:26 -0700 Ethan Furman <[email protected]> wrote:```python from tempfile import NamedTemporaryFilewith NamedTemporaryFile() as fp: fp.write(b'some data') fp.close() # Windows workaround fp.open() data = fp.read() assert data == 'some_data' ``` The problem is that, even though `fp.open()` is still inside the context manager, the `close()` call deletes the file [2]. To handle this scenario, my proposal is two-fold: 1) stop using the TEMPFILE OS attribute so the OS doesn't delete the file on close 2) add `.open()` to NamedTemporaryFileInstead, you could add a dedicated `.reopen()`?
Eric _______________________________________________ Python-Dev mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/[email protected]/message/4SZVHI6FEHAWBMGI5KUFYUOTTGQQACN5/ Code of Conduct: http://python.org/psf/codeofconduct/