Last updated on
os.path.getmtime 用来获取文件最后一次修改时间(Modification Time)
os.path.getmtime 用来获取文件最后一次“修改时间”,在做缓存、同步、是否需要重新下载时非常有用。
基本含义 ”Modification Time“
os.path.getmtime(path)
返回值:
- 一个
float - 表示 自 Unix Epoch(1970-01-01 00:00:00 UTC)以来的秒数
使用前提
import os
最基本示例
mtime = os.path.getmtime("data.csv")
print(mtime)
输出类似:
1735554321.123456
这不是人类友好的时间,而是时间戳。
转成人类可读时间(常用)
import time
mtime = os.path.getmtime("data.csv")
print(time.ctime(mtime)) #Change Time
示例输出:
Tue Dec 31 10:45:21 2025
更推荐的写法(datetime)
from datetime import datetime
mtime = os.path.getmtime("data.csv")
dt = datetime.fromtimestamp(mtime)
print(dt)
你这个项目里它的典型用途(重点)
你在做的是:
- Google Sheets → CSV
- 本地缓存
- 定期刷新
典型逻辑就是:
if os.path.exists(path):
age = time.time() - os.path.getmtime(path)
if age < 3600: # 1 小时
use_cache()
else:
re_download()
常见错误点(一定要知道)
1️⃣ 文件不存在会直接报错
os.path.getmtime("not_exist.csv")
会抛出:
FileNotFoundError
所以必须先判断存在性:
if os.path.exists(path):
os.path.getmtime(path)
2️⃣ mtime ≠ 创建时间
- mtime:内容被修改的时间
- 不是文件创建时间
如果你用的是 macOS:
getctime返回的是 metadata change time- 不是严格意义的创建时间(很容易被误用)
对比一下几个时间函数
| 函数 | 含义 |
|---|---|
getmtime | 内容修改时间(最常用) |
getatime | 最后访问时间 |
getctime | 元数据变更时间(macOS/Linux) |
pathlib 等价写法(推荐)
from pathlib import Path
mtime = Path("data.csv").stat().st_mtime
一句话总结
os.path.getmtime(path)= “这个文件上次被修改是什么时候?”
在缓存、同步、是否重新拉取远程数据这类场景中,它是核心工具之一。