Python os.chemin d'accès.relpath comportement

J'ai un répertoire bar à l'intérieur d'un répertoire foo, avec fichier foo_file.txt dans le répertoire foo et fichier bar_file.txt dans le répertoire bar; c'est à dire

computer$ ls
foo/
computer$ ls foo/
bar/  foo_file.txt
computer$ ls foo/bar/
bar_file.txt

À l'aide de l'python os.chemin d'accès.relpath fonction, je m'attends à:

os.path.relpath('foo/bar/bar_file.txt', 'foo/foo_file.txt')

à me donner:

'bar/bar_file.txt'

Cependant, il me donne en fait:

'../bar/bar_file.txt'

Pourquoi est-ce? Est-il un moyen facile pour obtenir le comportement que je veux?

EDIT: C'est sur Linux avec Python 2.7.3

J'ai réalisé que je peux utiliser os.path.relpath('foo/bar/bar_file.txt', os.path.dirname('foo/foo_file.txt')) pour obtenir le résultat que je veux. Toujours curieux de savoir pourquoi le code d'origine ne fonctionne pas.

OriginalL'auteur jveldridge | 2013-07-06