Author gjb1002
Recipients gjb1002
Date 2008-06-26.15:22:40
SpamBayes Score 3.84345e-08
Marked as misclassified No
Message-id <1214493762.8.0.246296591489.issue3210@psf.upfronthosting.co.za>
In-reply-to
Content
Run the following code on Windows:

import subprocess, os

file = open("filename", "w")
try:
    proc = subprocess.Popen("nosuchprogram", stdout=file)
except OSError:
    file.close()
    os.remove("filename")

This produces the following exception:

Traceback (most recent call last):
  File "C:\processown.py", line 10, in <module>
    os.remove("filename")
WindowsError: [Error 32] The process cannot access the file because it
is being used by another process: 'filename'

When the CreateProcess call fails the subprocess module should release
the handles it provides. Unfortunately it seems to raise WindowsError
before doing this.

See also
http://groups.google.com/group/comp.lang.python/browse_thread/thread/6157691ea3324779/6274e9f8bc8a71ee?hl=en#6274e9f8bc8a71ee

As Tim Golden points out, this can be worked around by doing
os.close(file.fileno()) at the end instead of file.close()
History
Date User Action Args
2008-06-26 15:22:43gjb1002setspambayes_score: 3.84345e-08 -> 3.84345e-08
recipients: + gjb1002
2008-06-26 15:22:42gjb1002setspambayes_score: 3.84345e-08 -> 3.84345e-08
messageid: <1214493762.8.0.246296591489.issue3210@psf.upfronthosting.co.za>
2008-06-26 15:22:41gjb1002linkissue3210 messages
2008-06-26 15:22:40gjb1002create