Eryk Sun added the comment:

Nick wrote:
> 1. Open the file in the current process
> 2. Write content to the file
> 3*. Close the file in the current process

In step 1, do you mean calling NamedTemporaryFile with delete=False? In that 
case there's no immediate problem with opening the file again in Windows. If 
you mean calling NamedTemporaryFile with delete=True, then step 3 deletes the 
file. 

Adding support for Windows share modes would be useful in general and would 
help within the current process. However, users may also need to open the 
temporary file in another process. Most programs don't open their files with 
shared delete access. 

There's a workaround to allow the file to be opened normally, but it involves 
setting the delete disposition and then clearing it in a pointless dance. It 
would be better to implement an option such as delete=AFTER_CM_EXIT, to try to 
remove the file without relying on O_TEMPORARY. The downside is that the file 
won't be deleted if the interpreter crashes, gets terminated or if another 
process has the file open without delete sharing.

----------
nosy: +eryksun
versions: +Python 3.7 -Python 3.5

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

Reply via email to