使用 Python 獲取當前目錄的父目錄

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

OS 模塊提供了多種獲取父目錄的方法。一些方式:

使用os.path。 abspath()

os.path.abspath() 可以用來獲取父目錄。此方法用於獲取路徑的規範化版本。這個函數也需要幫助 os.path.join ( () os.pardir () .
os.path.join ( () 在 Python os.path.join ( () 組合了一個或多個路徑組件。該方法將各種路徑組件與恰好一個連接起來(' / ') 目錄分隔符在除最後一個路徑組件之外的每個非空部分。如果要連接的路徑的最後一個組件為空,則 ( ' / ') 目錄分隔符放在最後。

語法: 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 () 在 Python 中用於獲取某個目錄的名稱給定的路徑。

語法:os.path.dirname< /a>(路徑)

參數:
路徑:表示文件系統路徑的類路徑對象。

返回類型:該方法返回一個字符串值,表示指定路徑中的目錄名。

示例:

#Python程序獲取父級
#目錄


導入 os


# 獲取當前目錄

path = os.getcwd()

print ( "Cu rrent 目錄 " , path)

print ( )


#父目錄

parent = os. path.dirname (path)

print ( "父目錄" , parent)

退出:

使用 os.path.relpath() 和 os.path.dirname ()

在上面的例子中,獲取父目錄僅限於一級,即,我們只能得到當前目錄的父級只有一級...假設我們要為父目錄找到父級,那麼上面的代碼就會失敗。這可以通過共享 os.path.dirname () .

os.path.relpath()在Python中用來從當前工作目錄或給定目錄獲取給定路徑的文件的相對路徑。

語法: os.path.relpath(path, start = os.curdir)

參數:
路徑:表示文件系統路徑的類路徑對象。
start (可選): 表示文件系統路徑的類路徑對象。
給定路徑的相對路徑將相對於 start 指示的目錄計算。此參數的默認值為 os。 curdir 是一個常數 st操作系統使用 ring 來引用當前目錄。

類似路徑的對像是表示路徑的字符串或字節對象。

返回類型: 此方法返回一個字符串值,表示從起始目錄到給定路徑的相對文件路徑。0222

示例:

要根據用戶指定的級別獲取父目錄,我們將創建一個函數 getParent () 它將接受 path levels 作為論據。在函數內部,for 循環會重複 level + 1 個時間數字,而在 for 循環 循環內部,os.path.dirname () 。在 for 循環中調用此函數將為我們提供一個起點,os.path.relpath () 將從該起點給出文件的相對路徑。

下面是實現。


# Python getter
# 父目錄



import os.path


#獲取父級的函數

def getParent (path, levels = 1 ):

common = path


#使用for循環獲取

#所需的起點

# os.path.relpath()

for i in range (級別 + 1 ):


# 起點

common = os.path.dirname(常見)

# 指定父目錄之前的

# 級別

return os.path.relpath(path, common)


path = `D:/Pycharm項目/Py thon.Engineering / Nikhil / gfg.txt`

print (getParent(path, 2 ))

退出: