On Sat, Oct 31, 2009 at 1:46 PM, Terry Reedy <tjre...@udel.edu> wrote: > 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.
I find the following two files that define realpath. But I don't find 'realpath' in os.py. I looked at 'os.py'. But I don't understand how the function realpath is introduced in the name space in os.path. Would you please let me know? gfind . ! -path '*backup*' -name "*.py" -type f -exec grep -n "def realpath" {} \; -printf %p\\n\\n 193:def realpath(path): ./macpath.py 345:def realpath(filename): ./posixpath.py -- http://mail.python.org/mailman/listinfo/python-list