從多個方面詳解os.path.dirname()

一、簡介

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-hk/n/229228.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-10 12:10
下一篇 2024-12-10 12:23

相關推薦

發表回復

登錄後才能評論