1. ホーム
  2. python

[解決済み] python: 2階層上のディレクトリを取得する

2022-05-15 02:04:24

質問

OK...I don't know where module x が、2階層上のディレクトリへのパスを取得する必要があることは分かっています。

では、もっとエレガントな方法はないのでしょうか。

import os
two_up = os.path.dirname(os.path.dirname(__file__))

Python 2と3の両方のソリューションが歓迎されます。

どのように解決するのですか?

を使用することができます。 pathlib . 残念ながら、これは Python 3.4 の stdlib でしか利用できません。もし古いバージョンを使っているならば、PyPIからコピーをインストールする必要があります。 ここで . を使って簡単にできるはずです。 pip .

from pathlib import Path

p = Path(__file__).parents[1]

print(p)
# /absolute/path/to/two/levels/up

これは parents というシーケンスを使用します。

なお p は、この場合、何らかの形で Path オブジェクトで、それぞれ独自のメソッドを持ちます。もし、文字列としてパスが必要なら、そのパスに対して str を呼び出すことができます。