Python文件路徑os.path函數(shù)深入剖析
介紹
在Python中,os.path模塊提供了一系列用于處理文件路徑和文件系統(tǒng)的函數(shù)。它是Python標(biāo)準(zhǔn)庫(kù)中os模塊的一部分。本文將深入探討os.path系列函數(shù)的使用方法,從入門(mén)到精通。
概覽
- 導(dǎo)入os.path模塊
獲取文件路徑信息
- os.path.abspath(): 獲取絕對(duì)路徑
- os.path.dirname(): 獲取目錄名
- os.path.basename(): 獲取文件名
- os.path.split(): 分割目錄和文件名
- os.path.join(): 拼接路徑
判斷路徑信息
- os.path.exists(): 判斷路徑是否存在
- os.path.isfile(): 判斷是否為文件
- os.path.isdir(): 判斷是否為目錄
- os.path.islink(): 判斷是否為符號(hào)鏈接
獲取文件屬性
- os.path.getsize(): 獲取文件大小
- os.path.getmtime(): 獲取最后修改時(shí)間
處理路徑字符串
- os.path.normpath(): 規(guī)范化路徑
- os.path.splitext(): 分割文件名和擴(kuò)展名
其他函數(shù)
- os.path.commonprefix(): 查找多個(gè)路徑的公共前綴
1. 導(dǎo)入os.path模塊
首先,我們需要導(dǎo)入os.path模塊,才能使用其中提供的函數(shù)。
# 導(dǎo)入os.path模塊 import os.path
在上述代碼中,我們使用import關(guān)鍵字導(dǎo)入os.path模塊。
2. 獲取文件路徑信息
os.path模塊中提供了一些函數(shù),用于獲取文件路徑的信息。
os.path.abspath(): 獲取絕對(duì)路徑
os.path.abspath()函數(shù)用于獲取文件的絕對(duì)路徑。
# 獲取當(dāng)前文件的絕對(duì)路徑 absolute_path = os.path.abspath(__file__) print("當(dāng)前文件的絕對(duì)路徑:", absolute_path)
在上述代碼中,我們使用os.path.abspath()函數(shù)獲取當(dāng)前文件的絕對(duì)路徑,并將結(jié)果保存在變量absolute_path中。
os.path.dirname(): 獲取目錄名
os.path.dirname()函數(shù)用于獲取文件路徑的目錄名。
# 獲取當(dāng)前文件所在目錄的路徑 directory_path = os.path.dirname(__file__) print("當(dāng)前文件所在目錄的路徑:", directory_path)
在上述代碼中,我們使用os.path.dirname()函數(shù)獲取當(dāng)前文件所在目錄的路徑,并將結(jié)果保存在變量directory_path中。
os.path.basename(): 獲取文件名
os.path.basename()函數(shù)用于獲取文件路徑的文件名。
# 獲取當(dāng)前文件的文件名 file_name = os.path.basename(__file__) print("當(dāng)前文件的文件名:", file_name)
在上述代碼中,我們使用os.path.basename()函數(shù)獲取當(dāng)前文件的文件名,并將結(jié)果保存在變量file_name中。
os.path.split(): 分割目錄和文件名
os.path.split()函數(shù)用于將路徑分割成目錄和文件名兩部分。
# 分割文件路徑 path = "/path/to/somefile.txt" directory, file_name = os.path.split(path) print("目錄:", directory) print("文件名:", file_name)
在上述代碼中,我們使用os.path.split()函數(shù)將路徑/path/to/somefile.txt分割為目錄和文件名兩部分,并將結(jié)果保存在變量directory和file_name中。
os.path.join(): 拼接路徑
os.path.join()函數(shù)用于將多個(gè)路徑組合成一個(gè)完整的路徑。
# 拼接路徑 directory = "/path/to" file_name = "somefile.txt" path = os.path.join(directory, file_name) print("拼接后的路徑:", path)
在上述代碼中,我們使用os.path.join()函數(shù)將目錄/path/to和文件名somefile.txt拼接成一個(gè)完整的路徑,并將結(jié)果保存在變量path中。
3. 判斷路徑信息
os.path模塊中提供了一些函數(shù),用于判斷文件路徑的信息。
os.path.exists(): 判斷路徑是否存在
os.path.exists()函數(shù)用于判斷指定路徑是否存在。
# 判斷路徑是否存在 path = "/path/to/somefile.txt" if os.path.exists(path): print("路徑存在") else: print("路徑不存在")
在上述代碼中,我們使用os.path.exists()函數(shù)判斷路徑/path/to/somefile.txt是否存在。
os.path.isfile(): 判斷是否為文件
os.path.isfile()函數(shù)用于判斷指定路徑是否為文件。
# 判斷是否為文件 file_path = "/path/to/somefile.txt" if os.path.isfile(file_path): print("路徑是一個(gè)文件") else: print("路徑不是一個(gè)文件")
在上述代碼中,我們使用os.path.isfile()函數(shù)判斷路徑/path/to/somefile.txt是否為文件。
os.path.isdir(): 判斷是否為目錄
os.path.isdir()函數(shù)用于判斷指定路徑是否為目錄。
# 判斷是否為目錄 directory_path = "/path/to" if os.path.isdir(directory_path): print("路徑是一個(gè)目錄") else: print("路徑不是一個(gè)目錄")
在上述代碼中,我們使用os.path.isdir()函數(shù)判斷路徑/path/to是否為目錄。
os.path.islink(): 判斷是否為符號(hào)鏈接
os.path.islink()函數(shù)用于判斷指定路徑是否為符號(hào)鏈接。
# 判斷是否為符號(hào)鏈接 link_path = "/path/to/symlink" if os.path.islink(link_path): print("路徑是一個(gè)符號(hào)鏈接") else: print("路徑不是一個(gè)符號(hào)鏈接")
在上述代碼中,我們使用os.path.islink()函數(shù)判斷路徑/path/to/symlink是否為符號(hào)鏈接。
4. 獲取文件屬性
os.path模塊中還提供了一些函數(shù),用于獲取文件的屬性。
os.path.getsize(): 獲取文件大小
os.path.getsize()函數(shù)用于獲取指定文件的大小。
# 獲取文件大小 file_path = "/path/to/somefile.txt" size = os.path.getsize(file_path) print("文件大小:", size, "字節(jié)")
在上述代碼中,我們使用os.path.getsize()函數(shù)獲取文件/path/to/somefile.txt的大小,并將結(jié)果保存在變量size中。
os.path.getmtime(): 獲取最后修改時(shí)間
os.path.getmtime()函數(shù)用于獲取指定文件的最后修改時(shí)間。
# 獲取最后修改時(shí)間 file_path = "/path/to/somefile.txt" mtime = os.path.getmtime(file_path) # 將時(shí)間戳轉(zhuǎn)換為日期時(shí)間格式 last_modified_time = datetime.datetime.fromtimestamp(mtime) print("最后修改時(shí)間:", last_modified_time)
在上述代碼中,我們使用os.path.getmtime()函數(shù)獲取文件/path/to/somefile.txt的最后修改時(shí)間的時(shí)間戳,并將結(jié)果保存在變量mtime中。然后,將時(shí)間戳轉(zhuǎn)換為日期時(shí)間格式,得到最后修改時(shí)間。
5. 處理路徑字符串
os.path模塊中提供了一些函數(shù),用于處理路徑字符串。
os.path.normpath(): 規(guī)范化路徑
os.path.normpath()函數(shù)用于規(guī)范化路徑,消除路徑中的雙斜杠和多余的點(diǎn)。
# 規(guī)范化路徑 path = "/path/to/../somefile.txt" normalized_path = os.path.normpath(path) print("規(guī)范化后的路徑:", normalized_path)
在上述代碼中,我們使用os.path.normpath()函數(shù)將路徑/path/to/../somefile.txt規(guī)范化,消除了路徑中的雙斜杠和多余的點(diǎn),并將結(jié)果保存在變量normalized_path中。
os.path.splitext(): 分割文件名和擴(kuò)展名
os.path.splitext()函數(shù)用于將文件名和擴(kuò)展名分割開(kāi)。
# 分割文件名和擴(kuò)展名 file_path = "/path/to/somefile.txt" file_name, extension = os.path.splitext(file_path) print("文件名:", file_name) print("擴(kuò)展名:", extension)
在上述代碼中,我們使用os.path.splitext()函數(shù)將路徑/path/to/somefile.txt的文件名和擴(kuò)展名分割開(kāi),并將結(jié)果保存在變量file_name和extension中。
6. 其他函數(shù)
除了上述介紹的函數(shù)外,os.path模塊還提供了其他一些函數(shù)。
os.path.commonprefix(): 查找多個(gè)路徑的公共前綴
os.path.commonprefix()函數(shù)用于查找多個(gè)路徑的公共前綴。
# 查找多個(gè)路徑的公共前綴 paths = ["/path/to/file1.txt", "/path/to/file2.txt", "/path/to/file3.txt"] common_prefix = os.path.commonprefix(paths) print("公共前綴:", common_prefix)
在上述代碼中,我們使用os.path.commonprefix()函數(shù)查找路徑列表["/path/to/file1.txt", "/path/to/file2.txt", "/path/to/file3.txt"]的公共前綴,并將結(jié)果保存在變量common_prefix中。
總結(jié)
通過(guò)本文的講解,我們了解了os.path系列函數(shù)的基本用法,從獲取文件路徑信息,判斷路徑信息,獲取文件屬性,處理路徑字符串,到其他一些函數(shù)的應(yīng)用。
- os.path.abspath(): 獲取文件的絕對(duì)路徑。
- os.path.dirname(): 獲取文件路徑的目錄名。
- os.path.basename(): 獲取文件路徑的文件名。
- os.path.split(): 分割路徑為目錄和文件名。
- os.path.join(): 拼接多個(gè)路徑為一個(gè)完整的路徑。
- os.path.exists(): 判斷路徑是否存在。
- os.path.isfile(): 判斷是否為文件。
- os.path.isdir(): 判斷是否為目錄。
- os.path.islink(): 判斷是否為符號(hào)鏈接。
- os.path.getsize(): 獲取文件大小。
- os.path.getmtime(): 獲取最后修改時(shí)間。
- os.path.normpath(): 規(guī)范化路徑。
- os.path.splitext(): 分割文件名和擴(kuò)展名。
- os.path.commonprefix(): 查找多個(gè)路徑的公共前綴。
os.path模塊是處理文件路徑和文件系統(tǒng)的重要工具,熟練掌握它的使用將幫助我們?cè)赑ython開(kāi)發(fā)中更加靈活、高效地處理文件和路徑相關(guān)的操作。
以上就是Python文件路徑os.path函數(shù)深入剖析的詳細(xì)內(nèi)容,更多關(guān)于Python文件路徑os.path的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Python OS系統(tǒng)解決路徑中空格原因?qū)е挛募虿婚_(kāi)的問(wèn)題
- 解決Python獲取文件提示找不到指定路徑can‘t?open?file?'area.py':[Errno?2]?No?such?file?or?directory
- Python 相對(duì)路徑報(bào)錯(cuò):"No such file or directory"'原因及解決方法
- Python os.listdir與os.walk實(shí)現(xiàn)獲取路徑詳解
- Python使用os.listdir和os.walk獲取文件路徑
- python之os路徑被轉(zhuǎn)義的問(wèn)題
相關(guān)文章
使用TensorFlow搭建一個(gè)全連接神經(jīng)網(wǎng)絡(luò)教程
今天小編就為大家分享一篇使用TensorFlow搭建一個(gè)全連接神經(jīng)網(wǎng)絡(luò)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02python實(shí)現(xiàn)k均值算法示例(k均值聚類(lèi)算法)
這篇文章主要介紹了python實(shí)現(xiàn)k均值算法示例,簡(jiǎn)單實(shí)現(xiàn)平面的點(diǎn)K均值分析,使用歐幾里得距離,并用pylab展示,需要的朋友可以參考下2014-03-03python機(jī)器學(xué)習(xí)sklearn實(shí)現(xiàn)識(shí)別數(shù)字
本文主要介紹了python機(jī)器學(xué)習(xí)sklearn實(shí)現(xiàn)識(shí)別數(shù)字,主要簡(jiǎn)述如何通過(guò)sklearn模塊來(lái)進(jìn)行預(yù)測(cè)和學(xué)習(xí),最后再以圖表這種更加直觀的方式展現(xiàn)出來(lái),感興趣的可以了解一下2022-03-03使用python找出list列表中相同元素(指定元素)的所有索引
這篇文章主要給大家介紹了關(guān)于使用python找出list列表中相同元素(指定元素)的所有索引,在平時(shí)開(kāi)發(fā)過(guò)程中經(jīng)常遇到需要在數(shù)據(jù)中獲取特定的元素索引的信息,需要的朋友可以參考下2023-08-08Python?Pytorch學(xué)習(xí)之圖像檢索實(shí)踐
隨著電子商務(wù)和在線網(wǎng)站的出現(xiàn),圖像檢索在我們的日常生活中的應(yīng)用一直在增加。圖像檢索的基本本質(zhì)是根據(jù)查詢(xún)圖像的特征從集合或數(shù)據(jù)庫(kù)中查找圖像。本文將利用Pytorch實(shí)現(xiàn)圖像檢索,需要的可以參考一下2022-04-04利用pandas進(jìn)行數(shù)據(jù)清洗的7種方式
采集到原始的數(shù)據(jù)中會(huì)存在一些噪點(diǎn)數(shù)據(jù),噪點(diǎn)數(shù)據(jù)是對(duì)分析無(wú)意義或者對(duì)分析起到偏執(zhí)作用的數(shù)據(jù),所以這篇文章給大家介紹了利用pandas進(jìn)行數(shù)據(jù)清洗的7種方式,需要的朋友可以參考下2024-03-03關(guān)于python基礎(chǔ)數(shù)據(jù)類(lèi)型bytes進(jìn)制轉(zhuǎn)換
Python 3.x之后,Python自帶字符默認(rèn)使用utf-8格式編碼和顯示,bytes數(shù)據(jù)類(lèi)型是utf-8格式的二進(jìn)制形式的不可變序列,需要的朋友可以參考下2023-05-05