Creating a temporary file in Python

Diez B. Roggisch deets at nospam.web.de
Wed Oct 31 08:16:10 EDT 2007


looping wrote:

> Hi,
> 
> I want to create a temporary file, read it in an external command and
> finally delete it (in Windows XP).
> 
> I try to use tempfile module but it doesn't work, the file couldn't be
> open by my other process (error like: SP2-0310: unable to open file "c:
> \docume~1\looping\locals~1\temp\tmpau81-s.sql")
> Is there a way to make it work or I have to manually manage
> everything ?
> 
> My non working code:
> 
> f = tempfile.NamedTemporaryFile(suffix='.sql')
> f.write(txt)
> f.flush()
> p = subprocess.Popen([SQL_PLUS, '-s', dsn, '@', SQL_PLUS_SCRIPT,
> f.name],
>       stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
> p.wait()
> f.close()

I'm not an expert, but I think you need to close the file first - you under
windows here, which can be picky about such stuff AFAIK. Or maybe there is
some other mode-specifier.

Diez



More information about the Python-list mailing list