Python os.stat()函數是Python內置的os模塊下的一個重要函數,用於返回指定路徑文件/目錄的詳細信息。stat()函數返回的詳細信息包括文件/目錄的元數據,如文件大小、創建時間、修改時間等。
一、基本介紹
os.stat()函數的基本形式為:
os.stat(path)
其中,path參數指定要獲取元數據信息的文件/目錄路徑。此函數返回的是一個包含元數據信息的stat_result對象,其中包含了以下重要屬性:
- mode:文件/目錄的權限模式
- ino:文件/目錄的i節點號
- dev:文件/目錄所在設備的ID
- nlink:文件/目錄的硬鏈接計數
- uid:文件/目錄所屬用戶的ID
- gid:文件/目錄所屬用戶組的ID
- size:文件大小(字節)
- atime:最後一次訪問時間
- mtime:最後一次修改時間
- ctime:最後一次元數據修改時間
二、文件權限
文件權限指文件對不同用戶或組的訪問控制,包括讀取、寫入、執行權限等。os.stat()函數返回的對象中,權限模式的信息存儲在mode屬性中,並可以通過一定的計算得到文件/目錄的權限信息。
其中,文件權限模式由以下三個八進制的數字構成:文件所有者的權限(u)、同組用戶的權限(g)和其他用戶的權限(o)。
例如,文件的權限模式是0o644。其中,0o代表八進制,644是三個數字分別代表u、g、o的權限(即讀寫、只讀、只讀)。
文件的權限計算方式如下:
oct(stat_mode)[-3:]
其中,stat_mode指os.stat()返回值中的mode屬性。oct()函數將其轉換為八進制表示的字符串,並取後三位,即所代表的文件權限。
三、文件時間戳
文件的時間戳是指文件所屬文件系統記錄的三個時間值:最後一次訪問時間(atime)、最後一次修改時間(mtime)和最後一次元數據修改時間(ctime)。
os.stat()函數返回的對象中,時間戳信息存儲在atime、mtime和ctime屬性中,分別代表最後一次訪問時間、最後一次修改時間和最後一次元數據修改時間。
以下是獲取文件時間戳的方法:
# 獲取文件訪問時間
os.stat('file').st_atime
# 獲取文件修改時間
os.stat('file').st_mtime
# 獲取文件元數據修改時間
os.stat('file').st_ctime
四、文件大小
文件大小是指文件佔用的字節數。os.stat()函數返回的對象中,文件大小的信息存儲在size屬性中。
以下是獲取文件大小的方法:
os.stat('file').st_size
五、文件i節點號
i節點(inode)是Unix/Linux文件系統中的一個重要概念,它是文件系統中一個被動態分配的數據結構,用於存儲文件的元數據(如文件類型、大小、權限、時間戳等)。
os.stat()函數返回的對象中,文件i節點號的信息存儲在ino屬性中。
以下是獲取文件i節點號的方法:
os.stat('file').st_ino
六、文件/目錄的硬鏈接計數
硬鏈接計數指指向同一個文件/目錄(即,在同一個文件系統中佔用同一個i節點)的硬鏈接數量。
os.stat()函數返回的對象中,文件/目錄的硬鏈接計數信息存儲在nlink屬性中。
以下是獲取文件/目錄硬鏈接數量的方法:
os.stat('file').st_nlink
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/308605.html