You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否使用Python的pathlib设置文件修改时间?

用pathlib重写文件并保留修改时间的方案

首先明确:你之前尝试的filepath.Path.stat().st_ctime = timestamp无效,是因为stat()返回的stat_result对象是只读的,无法直接赋值修改。

pathlib本身确实没有封装修改文件时间戳的方法,但完全可以结合os模块的utime()函数实现需求,同时保留pathlib的面向对象风格——因为os.utime()支持直接传入pathlib的Path对象作为参数,不用手动转成字符串路径。

具体步骤和代码示例:

  • 先用pathlib获取原文件的时间戳
  • 重写文件内容
  • 调用os.utime()恢复原时间戳
from pathlib import Path
import os

# 目标文件路径
target_file = Path("your_file.txt")

# 保存原文件的修改时间(st_mtime是修改时间,若需保留创建/状态变更时间可存st_ctime)
original_mtime = target_file.stat().st_mtime

# 重写文件(示例用write_text,实际可根据需求替换为write_bytes等方式)
target_file.write_text("新的文件内容")

# 恢复修改时间:utime的times参数格式为(访问时间atime, 修改时间mtime),按需设置即可
os.utime(target_file, times=(original_mtime, original_mtime))

补充说明:

  • 若在Windows系统下需要修改创建时间(ctime),os.utime无法直接处理,可能需要借助win32file这类第三方库,但多数场景下保留修改时间(st_mtime)就足以满足按时间索引的需求。
  • 这种方式既保留了pathlib管理路径的便捷性,又实现了时间戳保留的需求,无需完全切换到os模块的路径操作。

内容的提问来源于stack exchange,提问作者SundIT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 03:42:11