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 中用於獲取某個目錄的名稱給定的路徑。
參數:
路徑:表示文件系統路徑的類路徑對象。返回類型:該方法返回一個字符串值,表示指定路徑中的目錄名。
示例:
#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
))
退出: