Peng Yu wrote:
On Sat, Oct 31, 2009 at 11:26 AM, Emile van Sebille <em...@fenx.com> wrote:
On 10/31/2009 12:03 AM Peng Yu said...
Suppose that I have the following directory and files. I want to get
the canonical path of a file, a directory or a symbolic link.
For example, for 'b' below, I want to get its canonical path as
'/private/tmp/abspath/b'.
So, why isn't realpath working for you?  It looks like it is, and it works
that way here:

os.path.realpath('/home/emile/vmlinuz')
'/root/vmlinuz-2.4.7-10'

My definition of 'realpath' is different from the definition of
'os.path.realpath'. But I'm not short what term I should use to
describe. I use the following example to show what I want.

In my example in the original post,

'/tmp/abspath/b' is a symbolic link to '/tmp/abspath/a' and '/tmp' is
a symbolic link to '/private/tmp'.

Therefore, I want to get '/private/tmp/abspath/b', rather than
'/private/tmp/abspath/a', as the canonical path of 'b'.

If the argument is a symbolic link os.path.realpath will return the
actually target of the symbolic link. However, I want the path of the
symbolic link rather than the path of the target.

Hope this is clear.

I suspect that you will have to write your own code for your own function. os and os.path are written in Python, so look at the code for realpath and modify it for your modified definition.

Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to