一、os.stat()函數介紹
Python os.stat()函數用於獲取文件屬性信息,包括文件大小、創建時間、修改時間等。該函數返回一個包含文件屬性信息的stat對象,可以通過該對象的各種方法獲取不同屬性信息。下面是os.stat()函數的語法:
os.stat(path)
其中,path參數為文件路徑,可以是絕對路徑或相對路徑。
下面是一個簡單的示例,通過os.stat()函數獲取文件屬性信息:
import os statinfo = os.stat('./example.txt') print('文件大小:', statinfo.st_size) print('最近一次訪問時間:', statinfo.st_atime) print('最近一次修改時間:', statinfo.st_mtime)
本示例中,使用os.stat()函數獲取了“example.txt”文件的屬性信息,並輸出了文件大小、最近一次訪問時間、最近一次修改時間。output:
文件大小: 21 最近一次訪問時間: 1621470765.0646236 最近一次修改時間: 1621470762.1572392
二、stat對象屬性介紹
os.stat()函數返回一個stat對象,stat對象包含了文件屬性信息,下面介紹一些常用的stat對象屬性:
1. st_size
該屬性返迴文件大小,單位為字節。
2. st_atime
該屬性返回最近一次訪問時間,返回值為時間戳。
3. st_mtime
該屬性返回最近一次修改時間,返回值為時間戳。
4. st_ctime
該屬性返迴文件創建時間,返回值為時間戳。
5. st_mode
該屬性返迴文件的訪問權限,以位掩碼的形式表示。位掩碼是一種用於在二進制下表示一個數值的方法,也稱位標記、掩碼值等。
下面是一個獲取文件訪問權限的示例:
import os statinfo = os.stat('./example.txt') print('文件訪問權限:', statinfo.st_mode)
輸出結果為:33188。
可以將該數字轉換為二進制,然後從右向左數第 1、2、3 位表示文件所屬者的權限,第 4、5、6 位表示同組用戶的權限,第 7、8、9 位表示其他用戶的權限。每一位上如果是 1,表示有該權限,如果是 0,表示沒有該權限。例如本示例中的數字 33188 轉換為二進制為 1000001011001100,從右向左數第 1、2、3 位表示該文件所屬用戶有讀、寫權限,第 4、5、6 位表示同組用戶有讀權限,第 7、8、9 位表示其他用戶沒有任何權限。
三、常用時間戳轉換方法
os.stat()函數返回的時間戳需要通過轉換才能直觀地查看時間信息。下面介紹一些常用的時間戳轉換方法:
1. 時間戳轉時間字符串
可以使用time模塊的localtime函數將時間戳轉換為struct_time對象,再使用strftime函數將struct_time對象轉換為時間字符串。下面是一個示例:
import os import time statinfo = os.stat('./example.txt') atime = time.localtime(statinfo.st_atime) atime_str = time.strftime('%Y-%m-%d %H:%M:%S', atime) print('最近一次訪問時間:', atime_str)
輸出結果為:“最近一次訪問時間: 2021-05-21 16:59:25”
2. 時間字符串轉時間戳
可以使用datetime模塊的strptime函數將時間字符串轉換為datetime對象,再使用timestamp函數將datetime對象轉換為時間戳。下面是一個示例:
import datetime time_str = '2021-05-21 16:59:25' time_dt = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S') time_stamp = time_dt.timestamp() print('時間戳:', time_stamp)
輸出結果為:時間戳:1621598365.0
四、小結
本文介紹了Python os.stat()函數的使用方法,以及常用的獲取文件屬性信息的屬性和時間戳轉換方法。在實際開發中,獲取文件屬性信息時需要注意文件訪問權限和時間戳的轉換方法,以便更好地處理文件。希望本文能夠對大家有所幫助。
原創文章,作者:NSEQ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/132875.html