Python 2.6.4 (r264:75706, Mar  7 2010, 02:18:40)
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.mkdir('/home/baz/tmp/xxx')
>>> f = open('/home/baz/tmp/abc.txt', 'w')
>>> f.write('abc')
>>> f.close()
>>> os.chdir('/home/baz/tmp/xxx')
>>> os.getcwd()
'/home/baz/tmp/xxx'
>>> os.rmdir(os.getcwd())
>>> os.getcwd()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 2] No such file or directory
>>> open('../abc.txt').read()
'abc'
>>>

can anybody explain how python is able to read the file at the end of this session? i'm guessing it's a platform specific thing as i'm pretty sure the above sequence of commands wouldn't work on windows (i.e. attempting to remove the cwd would produce an error). but how can python determine the parent directory of a directory that no longer exists?

this actually caused a bug for me. i was trying to ensure that my program always resolved any file-names given on the command line by using os.path.realpath(). i had assumed that if realpath failed, then open would also fail - but not so!
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to