一、概述
在Python編程中,經常需要獲取文件或目錄的詳細信息,比如文件大小、創建時間、修改時間等。os模塊提供了os.stat函數,可以獲取文件或目錄的完整信息。
import os
filename = "test.txt"
stat_info = os.stat(filename)
print(stat_info)
運行結果為:
os.stat_result(st_mode=33204, st_ino=2769679, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=6487, st_atime=1620845036, st_mtime=1620845036, st_ctime=1620414274)
可以看到,os.stat返回了一個對象os.stat_result,其中包含了文件的詳細信息。
二、文件信息解讀
os.stat返回的os.stat_result對象包含了很多重要的文件信息,下面分別進行介紹。
1. st_mode
文件類型和存取許可權。
列印st_mode的值為文件類型和訪問許可權的八進位表示(例如:0o100660)。
2. st_ino
文件inode號碼
3. st_dev
文件的設備信息
4. st_nlink
文件的鏈接數
5. st_uid
文件的所有者id
6. st_gid
文件的組id
7. st_size
文件大小,單位為位元組
8. st_atime
文件的最後訪問時間
9. st_mtime
文件的最後修改時間
10. st_ctime
文件的創建時間
三、實際應用
1. 獲取文件大小
使用os.stat函數獲取文件大小的方式如下:
import os
filename = "test.txt"
stat_info = os.stat(filename)
file_size = stat_info.st_size
print("文件大小為:", file_size, "位元組")
2. 獲取文件創建時間
獲取文件創建時間的方式如下:
import os
import time
filename = "test.txt"
stat_info = os.stat(filename)
ctime = stat_info.st_ctime
ctime_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(ctime))
print("文件創建時間為:", ctime_str)
3. 獲取文件最後修改時間
獲取文件最後修改時間的方式如下:
import os
import time
filename = "test.txt"
stat_info = os.stat(filename)
mtime = stat_info.st_mtime
mtime_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(mtime))
print("文件最後修改時間為:", mtime_str)
4. 獲取目錄中最新修改的文件
獲取目錄中最新修改的文件,可以通過循環文件夾中所有文件,以最後修改時間確定最新的文件。
import os
import time
dir_path = "/Users/username/Documents"
files = os.listdir(dir_path)
latest_file = ""
latest_time = 0
for file in files:
file_path = os.path.join(dir_path, file)
stat_info = os.stat(file_path)
mtime = stat_info.st_mtime
if mtime > latest_time:
latest_time = mtime
latest_file = file
print("最新修改的文件為:", latest_file)
四、總結
os.stat是Python中獲取文件或目錄詳細信息的重要方法之一,掌握這個方法可以讓我們更好的處理文件和目錄操作。在實際開發中,可以根據具體需求,利用os.stat獲取文件或目錄的相關信息,進一步實現相應的功能。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/258050.html