1. 程式人生 > 實用技巧 >Python 【os.path()模組解析】

Python 【os.path()模組解析】

下面的函式多為常用的,想要了解更多的方法可以去檢視官方文件:

os.path()模組主要用於獲取檔案的屬性

方法說明
os.path.abspath(path) 返回path規範化的絕對路徑
os.path.basename(path) 返回path最後的檔名。如果path以/或\結尾,那麼就會返回空值。即os.path.split(path)的第二個元素
os.path.commonprefix(list) 返回list(多個路徑)中,所有path共有的最長的路徑
os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第一個元素
os.path.exists(path) 如果路徑 path 存在,返回 True;如果路徑 path 不存在,返回 False
os.path.getatime(path) 返回最近訪問時間(浮點型秒數)
os.path.getmtime(path) 返回最近檔案修改時間
os.path.getctime(path) 返回檔案 path 建立時間
os.path.getsize(path) 返回檔案大小(位元組),如果檔案不存在就返回錯誤
os.path.isabs(path) 判斷是否為絕對路徑,如果path是絕對路徑,返回True
os.path.isfile(path) 判斷路徑是否為檔案,如果path是存在的檔案,返回True
os.path.isdir(path) 判斷路徑是否為目錄,如果path是存在的目錄,返回True
os.path.islink(path) 判斷路徑是否為連結
os.path.ismount(path) 判斷路徑是否為掛載點
os.path.join(path1[, path2[, …]]) 將多個路徑組合後返回,第一個絕對路徑之前的引數將被忽略
os.path.normcase(path) 在Linux和Mac平臺上,該函式會原樣返回path,在windows平臺上會將路徑中所有字元轉換為小寫,並將所有斜槓轉換為反斜槓
os.path.normpath(path) 規範化路徑
os.path.relpath(path, start) 從start開始計算相對路徑
os.path.samefile(path1, path2) 判斷目錄或檔案是否相同
os.path.sameopenfile(fp1, fp2) 判斷fp1和fp2是否指向同一檔案
os.path.samestat(stat1, stat2) 判斷stat tuple stat1和stat2是否指向同一個檔案
os.path.split(path) 把路徑分割成 dirname目錄 和 basename檔名,返回一個二元組
os.path.splitdrive(path) 一般用在 windows 下,返回驅動器名和路徑組成的元組
os.path.splitext(path) 分割路徑,返回路徑名和副檔名的元組

例項1:os.path.abspath

>>> os.path.abspath('test.csv')
'C:\\Users\\Administrat\\程式碼TRY\\test.ipynb'
>>> os.path.abspath('../Users\\test.ipynb')
'C:\\Users\\Administrat\\Users\\test.ipynb'

例項2:os.path.basename

>>> os.path.basename('C:\\Users\\Administrat\\程式碼TRY\\test.ipynb')
'test.ipynb'
# 如果path以/或\結尾,那麼就會返回空值
>>> os.path.basename('C:\\Users\\Administrat\\程式碼TRY\\test.ipynb\\')
''

例項3:os.path.commonprefix

>>> os.path.commonprefix(['C:\\Users\\Administrat\\程式碼TRY','C:\\Users\\Administrat','C:\\Users\\Administrat\\程式碼TRY\\test.ipynb'])
'C:\\Users\\Administrat'

例項4:os.path.dirname

>>> os.path.dirname('C:\\Users\\Administrat\\程式碼TRY\\test.ipynb')
'C:\\Users\\Administrat\\程式碼TRY'

例項5:os.path.exists

>>> os.path.exists('c:\\')
True
>>> os.path.exists('c:\\程式碼TRY')
False

例項6:os.path.getatime/os.path.getmtime/os.path.getctime

>>> os.path.getatime('C:\\Users\\Administrat\\程式碼TRY\\test.ipynb')
1558430357.1332054
# os.path.getatime(path)返回最近訪問時間(浮點型秒數)
# os.path.getmtime(path)返回最近檔案修改時間
# os.path.getctime(path)返回檔案 path 建立時間

例項7:os.path.getsize

>>> os.path.getsize('C:\\Users\\Administrat\\程式碼TRY\\test.ipynb')
5915

例項8:os.path.isabs/os.path.isfile/os.path.isdir/os.path.islink/os.path.ismount

>>> os.path.isabs('C:\\Users\\Administrat\\程式碼TRY\\test.ipynb')
True
>>> os.path.isabs('.\\程式碼TRY\\test.ipynb')
False
# os.path.isabs(path)判斷是否為絕對路徑,如果path是絕對路徑,返回True
# os.path.isfile(path)判斷路徑是否為檔案,如果path是存在的檔案,返回True
# os.path.isdir(path)判斷路徑是否為目錄,如果path是存在的目錄,返回True
# os.path.islink(path)判斷路徑是否為連結
# os.path.ismount(path)判斷路徑是否為掛載點

例項9:os.path.join

>>> os.path.join('c:\\', 'Administrat', 'test.ipynb')
'c:\\Administrat\\test.ipynb'
# 第一個絕對路徑之前的引數將被忽略
>>> os.path.join('\\程式碼TRY', 'c:\\', 'Administrat', 'test.ipynb') 
'c:\\Administrat\\test.ipynb'

例項10:os.path.normcase

# 在windows平臺上會將路徑中所有字元轉換為小寫,並將所有斜槓轉換為反斜槓
>>> os.path.normcase('c:/WINDOWS\\system32\\')
'c:\\windows\\system32\\'

例項11:os.path.normpath

>>> os.path.normpath('c://windows\\System32\\../Temp/')
'c:\\windows\\Temp'

例項12:os.path.relpath

>>> os.path.relpath('C:\\Users\\Administrat\\程式碼TRY\\test.ipynb', '程式碼TRY')
'..\\test.ipynb'

例項13:os.path.samefile/os.path.sameopenfile/os.path.samestat

# os.path.samefile(path1, path2)判斷目錄或檔案是否相同
# os.path.sameopenfile(fp1, fp2)判斷fp1和fp2是否指向同一檔案
# os.path.samestat(stat1, stat2)判斷stat tuple stat1和stat2是否指向同一個檔案

例項14:os.path.split

# 返回一個二元組
>>> os.path.split('C:\\Users\\Administrat\\程式碼TRY\\test.ipynb')
('C:\\Users\\Administrat\\程式碼TRY', 'test.ipynb')
>>> os.path.split('C:\\Users\\Administrat\\程式碼TRY\\')
('C:\\Users\\Administrat\\程式碼TRY', '')

例項15:os.path.splitdrive

>>> os.path.splitdrive('C:\\Users\\Administrat\\程式碼TRY\\test.ipynb')
('C:', '\\Users\\Administrat\\程式碼TRY\\test.ipynb')

例項16:os.path.splitext

>>> os.path.splitext('C:\\Users\\Administrat\\程式碼TRY\\test.ipynb')
('C:\\Users\\Administrat\\程式碼TRY\\test', '.ipynb')

關注、留言,我們一起學習,您的收藏是我持續更新的動力!

===============Talk is cheap, show me the code,bye-bye================