10

ディレクトリ内にディレクトリがあり、ディレクトリbarfooにファイルがあり、ディレクトリ内にファイルfoo_file.txtfooあります。すなわちbar_file.txtbar

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

python os.path.relpath関数を使用すると、次のことが期待されます。

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

私に与える為に:

'bar/bar_file.txt'

ただし、実際には次のようになります。

'../bar/bar_file.txt'

どうしてこれなの?私が望む動作を取得する簡単な方法はありますか?

編集:これはPython 2.7.3を搭載したLinux上にあります

4

3 に答える 3

10
os.path.relpath(arg1, arg2) 

arg1 のディレクトリからの arg2 の相対パスを指定します。あなたのケースで arg2 から arg1 に移動するには、1 つのディレクトリ (..) を cd して、bar ディレクトリ (bar) に移動し、次に bar_file.txt に移動する必要があります。したがって、相対パスは

../bar/bar_file.txt
于 2016-05-17T18:26:59.837 に答える