一、簡介
Python中的os.path模塊是關於路徑處理的標準模塊,其中os.path.dirname()用於返回一個路徑中的目錄部分,即去掉了文件名的路徑。
二、基本用法
os.path.dirname()的基本用法為:
import os print(os.path.dirname('/foo/bar/baz.txt')) # 輸出 /foo/bar
其中os.path.dirname()函數返回的是去掉了最後一級的路徑名稱。如果路徑中只有文件名,則返回空字符串。
三、與其他函數的配合使用
在實際開發中,os.path.dirname()通常與其他函數配合使用。例如os.path.join()函數可以用於合併路徑,os.path.abspath()函數可以返回一個絕對路徑。
import os path1 = '/home/user1' path2 = 'data/abc.txt' # 使用os.path.join()函數合併路徑 path = os.path.join(path1, path2) print(path) # 輸出 /home/user1/data/abc.txt # 使用os.path.dirname()函數獲取父目錄 parent_path = os.path.dirname(path) print(parent_path) # 輸出 /home/user1/data # 使用os.path.abspath()函數獲取絕對路徑 abs_path = os.path.abspath(parent_path) print(abs_path) # 輸出 /home/user1/data
四、處理相對路徑
os.path.dirname()也可以用於處理相對路徑。在處理相對路徑時,需要結合os.path.join()和os.getcwd()函數,os.getcwd()函數用於獲取當前目錄。
import os # 獲取當前目錄 cwd = os.getcwd() print(cwd) # 輸出當前目錄 # 在當前目錄下新建一個data目錄 new_path = os.path.join(cwd, 'data') os.mkdir(new_path) # 在新建的data目錄下新建一個abc.txt文件 new_file = os.path.join(new_path, 'abc.txt') with open(new_file, 'w') as f: f.write('hello world') # 獲取abc.txt文件所在目錄的父目錄 parent_path = os.path.dirname(new_file) print(parent_path) # 輸出新建的data目錄
五、處理特殊字符
當路徑中包含特殊字符時,os.path.dirname()的表現可能有些出乎意料。例如:
import os path = '/foo/bar/[abc].txt' parent_path = os.path.dirname(path) print(parent_path) # 輸出 /foo/bar
在這個例子中,原路徑中包含了方括號這樣的特殊字符,但是os.path.dirname()函數返回的結果卻沒有去掉方括號。這是因為os.path.dirname()函數只對路徑進行了簡單的字符串的操作,而沒有對特殊字符進行特別的處理。
六、小結
本文詳細介紹了Python中常用的路徑處理函數os.path.dirname(),包括其基本用法、與其他函數的配合使用、處理相對路徑和處理特殊字符等方面的知識。在實際開發中,合理使用os.path.dirname()函數可以使代碼更加簡潔易懂。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/229228.html