1

私は次のものを持っています:

a = "/my/absolute/path"
b = "my/relative/path"
root = "/new/root/dir"
print relocate_path(a, root)
print relocate_path(b, root)

私は取得したい:

/new/root/dir/my/absolute/path
/new/root/dir/my/relative/path

relocate_pathPythonicな方法で効果的に実装するには? 標準ライブラリにそのようなものはありますか?(私はos.pathで試しましたが、何も見つかりませんでした)

4

2 に答える 2

1

os.path.join相対パスが必要です。絶対パスの場合、先頭のスラッシュを削除するのが最善だと思います。

このようなもの:

def relocate_path(new_root, path):
    return os.path.join(new_root, path.lstrip('/'))

絶対パスを指定してルートからの相対パスを取得するには、次のこともできます。

>>> os.path.relpath('/absolute/path', '/')
'absolute/path'

しかし、スラッシュを削除するだけではクロスプラットフォームではないと思います。Windowsで少し遊んでみましたがrelpath、どのように機能するのかわかりません。

于 2013-06-02T14:52:54.233 に答える