tempfile.NamedTemporaryFile wont work

Imbaud Pierre pierre at saiph.com
Sun Nov 19 13:11:13 CET 2006


On suse 9.3, tempfile.NamedTemporaryFile() doesnt work as expected.
(I found a permanent workaround, so I dont ask for help)
I expected to write to a file, and access it thru a shell command.
This code, in a loop:
             tf = tempfile.NamedTemporaryFile()
             tfName = tf.name
             #tf.seek(0)                  # rewind the file
             tf.write(chunk); tf.flush()
             print >> sys.stderr, '%s: %s' % (tfName, ['no', 
'yes'][os.path.exists(tfName)])
             subprocess.Popen(['strings', tfName])

Symptom: the file does not always exist, after the call to
NamedTemporaryFile(). Or at least its not seen by the strings command,
or by os.path.exists.

I guess the bug is pretty much os dependent, or even filesystem
dependent (Im on reiserfs). Maybe the os is buggy, maybe, somehow, the
python interface. Or did I miss something?
Shame, I didnt even try to check for a python bug tracker.



More information about the Python-list mailing list