一、概述
在Python的os module中,st_mtime是指文件的最後修改時間(modification time)。獲取文件的最後修改時間在許多程序中都是非常重要的,這是因為時常需要判斷文件是否被修改過,以及判斷修改的時間。使用Python的os module中的st_mtime屬性,可以快速簡便地獲取文件的最後修改時間,可實現許多功能。
二、獲取文件的最後修改時間
使用Python的os module中的st_mtime屬性,可以獲取文件的最後修改時間。具體方法如下:
import os stat_info = os.stat('/path/to/file.txt') print(stat_info.st_mtime)
如上,首先需要導入os module,然後使用os.stat函數,傳入文件路徑,得到該文件的stat信息。在stat信息中,st_mtime即為該文件的最後修改時間。列印st_mtime即可獲取該文件的最後修改時間。
三、獲取目錄下最新修改文件
有時候需要獲取某個目錄下最新修改的文件,這也可以使用Python的os module中的st_mtime屬性來實現。
import os # 遍歷目錄下所有文件 for root, dirs, files in os.walk('/path/to/dir'): # 遍歷每個文件並獲取最後修改時間 for file_name in files: file_path = os.path.join(root, file_name) stat_info = os.stat(file_path) print(file_name, stat_info.st_mtime)
如上,使用os.walk函數遍歷目錄下所有文件和文件夾。對於每個文件,使用os.path.join函數獲得文件路徑,然後使用os.stat函數獲取該文件的stat信息,最終列印文件名和最後修改時間。
如果需要獲取最新修改的文件,則可以在遍歷過程中維護一個max_mtime變數,記錄遍歷過程中最新的st_mtime值,並將對應的文件名保存下來。
四、判斷文件是否被修改過
有時候需要判斷文件是否被修改過。使用Python的os module中的st_mtime屬性,可以輕易地實現該功能。
import os import time # 獲取文件信息 stat_info = os.stat('/path/to/file.txt') # 存儲最後修改時間 last_modified_time = stat_info.st_mtime # 模擬程序運行 time.sleep(5) # 再次獲取文件信息 stat_info = os.stat('/path/to/file.txt') # 比較最後修改時間是否相同 if last_modified_time == stat_info.st_mtime: print('文件未被修改過') else: print('文件已被修改過')
如上,首先使用os.stat函數獲取文件的stat信息,並獲取該文件的st_mtime值,即為最後修改時間。接著模擬程序運行,等待5秒後再次使用os.stat函數獲取文件的stat信息,並比較兩次獲取的st_mtime值是否相同,即可判斷該文件是否被修改過。
五、總結
Python的os module中的st_mtime屬性是一個便捷的獲取文件最後修改時間的屬性,可以實現許多功能,如獲取目錄下最新修改文件、判斷文件是否被修改過等。熟練掌握st_mtime的使用,可以大大提高文件操作的效率、準確性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/248036.html