Pythonを使用して現在のディレクトリの親を取得する

| | | | | | | | | | | | | | | | | | | | | |

OSモジュールは、親ディレクトリを取得するためのさまざまな方法を提供します。いくつかの方法:

os.pathを使用します。 abspath()

os.path.abspath()を使用して、親ディレクトリを取得できます。このメソッドは、パスの正規化されたバージョンを取得するために使用されます。この関数にもヘルプが必要です os.path.join (() およびos.pardir()
os.path.join (() in Python os.path.join (() は、1つ以上のパスコンポーネントを結合します。このメソッドは、さまざまなパスコンポーネントを1つだけに連結します。 (' /')最後のパスコンポーネントを除く空でない各部分の後のディレクトリセパレータ。結合するパスの最後のコンポーネントが空の場合、( ' /')ディレクトリセパレータが最後に配置されます。

構文: os.path.abspath(パス)

パラメータ:
パス:ファイルシステムパスを表すパスのようなオブジェクト。

戻るタイプ:パスの正規化されたバージョンである文字列を返します。

例:


#親を取得するPythonプログラム
#ディレクトリ



import os


#現在のディレクトリを取得

パス = os.getcwd()

print "現在のディレクトリ" 、cwd)


#親ディレクトリを出力します

print (os.path.abspath(< a href = "https://python.engineering/python-os-path-join-method/"> os.path.join ((path、os.pardir)))

出力:

os.path.dirname()

os.path.dirname() は、でディレクトリの名前を取得するために使用されます。与えられたパス。

構文: os.path.dirname < / a>(パス)

パラメータ:
パス:ファイルシステムパスを表すパスのようなオブジェクト。

戻りタイプ:このメソッドは、指定されたパスからのディレクトリ名を表す文字列値を返します。

例: < / p>

#親を取得するPythonプログラム
#ディレクトリ


import os


#現在のディレクトリを取得

パス = os.getcwd()

print "Cu rrent Dir ectory " 、path)

print ()


#親ディレクトリ

= os。 path.dirname (パス)

print "親ディレクトリ" 、親)

終了:

os.path.relpath()および os.path.dirname ()

上記の例では、親ディレクトリの取得は1つのレベルに制限されていました。 、現在のディレクトリの親レベルを1つのレベルにしか取得できませんでした...親ディレクトリの親を検索すると、上記のコードは失敗します。これは、 os.path.dirname ()

os.path.relpath()はPythonで使用されます現在の作業ディレクトリまたは指定されたディレクトリのいずれかから、指定されたパスにあるファイルへの相対パスを取得します。

構文: os.path.relpath(path、start = os.curdir)

パラメータ:
パス:ファイルシステムパスを表すパスのようなオブジェクト。
start(オプション):ファイルシステムパスを表すパスのようなオブジェクト。
指定されたパスの相対パスは、startで示されたディレクトリを基準にして計算されます。このパラメーターのデフォルト値はosです。定数stであるcurdirオペレーティングシステムが現在のディレクトリを参照するために使用するリング。

パスのようなオブジェクトは、パスを表す文字列またはバイトオブジェクトのいずれかです。

戻り値の種類:このメソッドは、開始ディレクトリから指定されたパスへの相対ファイルパスを表す文字列値を返します。0222

例:

ユーザー指定のレベルに従って親ディレクトリを取得するには、 pathlevelsを受け入れる関数getParent()を作成します。引数。関数内では、forループは level + 1 の時間番号を繰り返し、 for loopループ内では os.path.dirname ()が呼び出されます。 forループ内でこの関数を呼び出すと、os.path.relpath()がファイルへの相対パスを提供する開始点が得られます。

以下は実装です。


#Python getter
#親ディレクトリ



import os.path


#親を取得する関数

def getParent(path、levels = 1 ):

共通 = パス


に必要な開始点を取得するためのループの使用法# os.path.relpath()

for i in 範囲(レベル + 1 ):


#開始点

共通 = os.path.dirname (共通)

#指定された前の親ディレクトリ

#level

return os.path.relpath(path、common)


パス = `D:/Pycharmプロジェクト/Py thon.Engineering / Nikhil / gfg.txt`

print (getParent(path、 2 ))

終了: