tempfile.NamedTemporaryFile wont work
Imbaud Pierre
pierre at saiph.com
Sun Nov 19 13:03:38 EST 2006
Steven D'Aprano a écrit :
> On Sun, 19 Nov 2006 13:18:39 +0100, Bjoern Schliessmann wrote:
>
>
>>Imbaud Pierre wrote:
>>
>>
>>> tf = tempfile.NamedTemporaryFile()
>>> tfName = tf.name
>>>[...]
>>> print >> sys.stderr, '%s: %s' % (tfName, ['no',
>>>'yes'][os.path.exists(tfName)])
>>> subprocess.Popen(['strings', tfName])
>>
>>Just out of curiosity: Why did you assign tf.name to tfname?
>>
>>Hypothetically, if tf.name changed, tfname wouldn't follow since
>>strings are immutable.
>
>
> Well, yes, but if tf.name changed, that won't change the file name on disk
> either:
>
>
>>>>tf = tempfile.NamedTemporaryFile()
>>>>tf.name
>
> '/tmp/tmpYVV1Ij'
>
>>>>os.path.exists(tf.name)
>
> True
>
>>>>oldname = tf.name
>>>>tf.name = "/tmp/something"
>>>>os.path.exists(tf.name)
>
> False
>
>>>>os.path.exists(oldname)
>
> True
>
>
> I'm guessing that binding tf.name to tfName is a micro-optimization.
indeed. And I dont see why tf.name would change.
In a
> very tight loop, name lookups can take considerable time, and one
> optimization can be to reduce the number of lookups:
>
> method = something.method
> while 1:
> something.method # needs at least two lookups
> method # needs a single lookup
>
>
More information about the Python-list
mailing list