Execfile() - bug / strange behavior
Amit Patel
amitp at Xenon.Stanford.EDU
Thu Feb 3 22:04:20 EST 2000
I'm trying to understand why execfile(fn) is different from exec
open(fn,'r').read(). Here's my program:
====
def timbot():
a = 3
execfile("1.txt")
print a
print locals()
timbot()
====
Then I have 1.txt:
====
a = 5
b = 8
====
When I run this, I expect to see a is 5, but I get:
====
3
{'b': 8, 'a': 3}
====
I don't understand why variable a is not set, but b is! Even
stranger, when I try to print b from timbot(), it gives me NameError,
even though it's in locals()!
When I change execfile("1.txt") to exec open("1.txt",'r').read(), it
works just fine!
This seems to be different from any recent execfile bugs I can find on
Deja, but it sounds like it could be the the same as a bug reported in
**1996** (egads! Was Tim even a bot back then? Did we even have 1.5?):
http://www.deja.com/getdoc.xp?AN=145064312&fmt=text
Any ideas? Either why it's still a bug or what I'm doing wrong or why
the documentation is misleading ..?
- Amit
[In case anyone is wondering, this is Python 1.5.2 for Linux, from RH 6.1]
More information about the Python-list
mailing list