os.path 模塊主要用於獲取文件的屬性。node
返回一個目錄的絕對路徑。python
語法: os.path.abspath(path)
import os pat = os.path.abspath('new') print(pat) # C:\Users\lu\PycharmProjects\test_project\content\new
返回一個目錄的文件名。windows
語法: os.path.basename(path)
import os dir = os.path.basename('/test_project/content/new') print(dir) # new
返回一個目錄的文件路徑。測試
語法: os.path.dirname(path)
import os dir = os.path.dirname('/test_project/content/new') print(dir) # /test_project/content
把目錄和文件名合成一個路徑。windows默認用\
拼接。spa
語法: os.path.join(path1[, path2[, ...]])
import os dir = os.path.join('/test_project/content', 'new') print(dir) # /test_project/content/new
把路徑分割成 dirname 和 basename,返回一個元組。code
語法: os.path.split(path)
import os result = os.path.split('/test_project/content') print(result) # ('/test_project', 'content')
測試指定文件是否存在。存在則返回True,不存在則返回False。orm
語法: os.path.exists(path)
假設存在文件xkd.py
,以下所示:unicode
import os result = os.path.exists('xkd.py') print(result) # True # 不存在返回False result1 = os.path.exists('aa.py') print(result1) # False
獲得指定文件最後一次的訪問時間。返回結果爲浮點型秒數。字符串
語法: os.path.getatime(path)
輸出xkd.py
文件最後一次的訪問時間,以下所示:get
import os result = os.path.getatime('xkd.py') print(result) # 1565667299.7847126
獲得指定文件最後一次的改變時間。返回結果爲浮點型秒數。
語法: os.path.getctime(path)
輸出test.py
文件最後一次的改變時間,以下所示:
import os result = os.path.getctime('test.py') print(result) # 1565853902.035506
獲得指定文件最後一次的修改時間。
語法: os.path.getmtime(path)
輸出test.py
文件最後一次的修改時間,以下所示:
import os result = os.path.getmtime('test.py') print(result) # 1565861158.5235534
返回文件大小,若是文件不存在就返回錯誤。
語法: os.path.getsize(path)
輸出test.py
的大小,以下全部:
import os result = os.path.getsize('test.py') print(result) # 85 result1 = os.path.getsize('aa.py') print(result1) # 報錯:FileNotFoundError
返回最長路徑前綴(逐個字符),它是列表中全部路徑的前綴 。若是list爲空,則返回空字符串(''
)。
語法: os.path.commonprefix(list)
import os result = os.path.commonprefix(['content', 'content/xkd', 'content/xkd/test.py']) print(result) # content
分割路徑,返回路徑名和文件擴展名的元組。
語法: os.path.splitext(path)
import os result = os.path.splitext("/content/xkd.py") print(result) # ('/content/xkd', '.py')
判斷路徑是否存在,路徑存在則返回True,若是路是是一個受到破壞的軟連接(原始文件/文件夾被刪除)也返回True。
語法: os.path.lexists(path)
import os result = os.path.lexists('C:/Users/lu/PycharmProjects/test_project/content') print(result) # True result1 = os.path.lexists('/test_project/content/xkd.py') print(result1) # False
把path中包含的~
和~user
轉換成用戶目錄。
語法: os.path.expanduser(path)
import os result = os.path.expanduser('~/test_project/content') print(result) # C:/Users/lu/test_project/content result1 = os.path.expanduser('~test_project/content') print(result1) # C:/Users/test_project/content
擴展path中的環境變量並返回。path中$NAME
和${NAME}
格式的子串將被對應的環境變量替換(不一樣平臺存在是否區分大小寫的問題)。格式錯誤或變量不存在,將直接返回。
在windows中還包括%NAME%
的形式。
語法: os.path.expandvars(path)
判斷是否爲絕對路徑。
語法: os.path.isabs(path)
import os result = os.path.isabs("new") print(result) # False
判斷是否爲絕對路徑。是則返回True,不然返回False。
語法: os.path.isabs(path)
import os result = os.path.isabs("/test_project/content") print(result) # True result1 = os.path.isabs("new") print(result1) # False
判斷路徑是否爲文件。
語法: os.path.isfile(path)
import os result = os.path.isfile("test.py") print(result) # True # 不是文件返回False result1 = os.path.isfile("new") print(result1) # False
判斷路徑是否爲連接。
語法: os.path.islink(path)
import os result = os.path.isdir("/test_project/content") print(result) # False
判斷路徑是否爲掛載點。
語法:os.path.ismount(path)
import os result = os.path.ismount("/content/new") print(result) # False
規範路徑名大小寫。在Unix和Mac OS X系統,直接返回path。在大小寫不敏感的系統(如Windows),會將path轉換爲小寫字母。此外Windows還會將/
轉換爲\\
。
語法:os.path.normcase(path)
import os result = os.path.normcase('/CONTENT/xkd.py') print(result) # \content\xkd.py
規範path字符串形式。
語法:os.path.normpath(path)
import os result = os.path.normpath('/content/xkd.py') print(result) # \content\xkd.py
返回path的真實路徑。
語法:os.path.realpath(path)
import os result = os.path.realpath("/content/new") print(result) # C:\content\new
返回相對於當前工做目錄或指定的start目錄的相對路徑。
語法:os.path.relpath(path, start=os.curdir)
import os result = os.path.relpath('/test_project/content', start=os.curdir) print(result) # ..\..\..\..\..\test_project\content
判斷path1和path2是否指向同一個文件或目錄,取決於設備號和i-node。若是調用os.stat()
失敗將拋出異常。
語法:os.path.samefile(path1, path2)
import os result = os.path.samefile('test.py', 'xkd.py') print(result) # False
判斷文件描述符fp1和fp2是否指向同一個文件或目錄。
語法:os.path.sameopenfile(fp1, fp2)
import os fd1 = os.open("test.txt", os.O_RDWR | os.O_CREAT) fd2 = os.open("test.txt", os.O_RDWR | os.O_CREAT) fd3 = os.open("xkd.txt", os.O_RDWR | os.O_CREAT) result = os.path.sameopenfile(fd1, fd2) print(result) # True result1 = os.path.sameopenfile(fd1, fd3) print(result1) # False
判斷狀態元組stat1和stat2是否指向同一個文件或目錄,參數多是os.fstat()
、os.lstat
或os.stat()
的返回值。
語法:os.path.samestat(stat1, stat2)
import os stat1 = os.stat("test.py") stat2 = os.stat("test.py") stat3 = os.stat("xkd.py") result = os.path.samestat(stat1, stat2) print(result) # True result1 = os.path.samestat(stat1, stat3) print(result1) # False
通常用在 windows 下,返回驅動器名和路徑組成的元組。
語法:os.path.splitdrive(path)
import os result = os.path.splitdrive('/test_project/content/xkd.py') print(result) # ('', '/test_project/content/xkd.py')
判斷是否能使用任意Unicode字符串做爲文件名(在文件系統強加的限制內)。