python 两种方法修改文件的创建时间、修改时间、访问时间


Posted in Python onSeptember 26, 2020

突如其来想知道一下 python 如何修改文件的属性(创建、修改、访问时间),于是就去网上搜集了可行方案,也就有了这篇博客

方案一

from win32file import CreateFile, SetFileTime, GetFileTime, CloseHandle
from win32file import GENERIC_READ, GENERIC_WRITE, OPEN_EXISTING
from pywintypes import Time # 可以忽视这个 Time 报错(运行程序还是没问题的)
import time


def modifyFileTime(filePath, createTime, modifyTime, accessTime, offset):
  """
  用来修改任意文件的相关时间属性,时间格式:YYYY-MM-DD HH:MM:SS 例如:2019-02-02 00:01:02
  :param filePath: 文件路径名
  :param createTime: 创建时间
  :param modifyTime: 修改时间
  :param accessTime: 访问时间
  :param offset: 时间偏移的秒数,tuple格式,顺序和参数时间对应
  """
  try:
    format = "%Y-%m-%d %H:%M:%S" # 时间格式
    cTime_t = timeOffsetAndStruct(createTime, format, offset[0])
    mTime_t = timeOffsetAndStruct(modifyTime, format, offset[1])
    aTime_t = timeOffsetAndStruct(accessTime, format, offset[2])

    fh = CreateFile(filePath, GENERIC_READ | GENERIC_WRITE, 0, None, OPEN_EXISTING, 0, 0)
    createTimes, accessTimes, modifyTimes = GetFileTime(fh)

    createTimes = Time(time.mktime(cTime_t))
    accessTimes = Time(time.mktime(aTime_t))
    modifyTimes = Time(time.mktime(mTime_t))
    SetFileTime(fh, createTimes, accessTimes, modifyTimes)
    CloseHandle(fh)
    return 0
  except:
    return 1


def timeOffsetAndStruct(times, format, offset):
  return time.localtime(time.mktime(time.strptime(times, format)) + offset)


if __name__ == '__main__':
  # 需要自己配置
  cTime = "2019-12-13 21:51:02" # 创建时间
  mTime = "2019-02-02 00:01:03" # 修改时间
  aTime = "2019-02-02 00:01:04" # 访问时间
  fName = r"E:\test_pro\fileOperate\test.xlsx" # 文件路径,文件存在才能成功(可以写绝对路径,也可以写相对路径)

  offset = (0, 1, 2) # 偏移的秒数(不知道干啥的)

  # 调用函数修改文件创建时间,并判断是否修改成功
  r = modifyFileTime(fName, cTime, mTime, aTime, offset)
  if r == 0:
    print('修改完成')
  elif r == 1:
    print('修改失败')

方案二(无法修改文件创建时间)

可以去这里http://tools.3water.com/code/unixtime/转换时间,也可以自己处理时间戳与格式化时间

import os

file_path = "pip.txt"
print(os.stat(file_path))
# os.stat_result(
#  st_mode=33206,
#  st_ino=2251799813766228,
#  st_dev=3050226722,
#  st_nlink=1,
#  st_uid=0,
#  st_gid=0,
#  st_size=851,
#  st_atime=1576241919,
#  st_mtime=1574385498,
#  st_ctime=1576241919,
# )

# 只能修改 访问时间 与 修改时间(暂不知道怎么修改创建时间)
os.utime(file_path, (1576335480, 1576335480))
print(os.stat(file_path))
# os.stat_result(
# st_mode=33206,
# st_ino=2251799813766228,
# st_dev=3050226722,
# st_nlink=1,
# st_uid=0,
# st_gid=0,
# st_size=851,
# st_atime=1576335480,
# st_mtime=1576335480,
# st_ctime=1576241919,
# )

以上就是python 两种方法修改文件的创建时间、修改时间、访问时间的详细内容,更多关于python 修改文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中IPYTHON入门实例
May 11 Python
基于python3 类的属性、方法、封装、继承实例讲解
Sep 19 Python
Python最火、R极具潜力 2017机器学习调查报告
Dec 11 Python
解读python logging模块的使用方法
Apr 17 Python
基于python实现高速视频传输程序
May 05 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
Pytorch GPU显存充足却显示out of memory的解决方式
Jan 13 Python
基于Python实现下载网易音乐代码实例
Aug 10 Python
python 生成器需注意的小问题
Sep 29 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
Oct 18 Python
用Python提取PDF表格的方法
Apr 11 Python
Python中npy和mat文件的保存与读取
Apr 24 Python
如何使用Python调整图像大小
Sep 26 #Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
Sep 25 #Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
Nov 25 #Python
详解Python中第三方库Faker
Sep 25 #Python
python对批量WAV音频进行等长分割的方法实现
Sep 25 #Python
python连接mysql数据库并读取数据的实现
Sep 25 #Python
Python3如何使用tabulate打印数据
Sep 25 #Python
You might like
PHP 中执行排序与 MySQL 中排序
2009/04/21 PHP
php处理json时中文问题的解决方法
2011/04/12 PHP
php实现给二维数组中所有一维数组添加值的方法
2017/02/04 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
JavaScript开发时的五个注意事项
2007/12/08 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
js点击任意区域弹出层消失实现代码
2016/12/27 Javascript
vue如何判断dom的class
2018/04/26 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
Vue项目History模式404问题解决方法
2018/10/31 Javascript
JS实现深度优先搜索求解两点间最短路径
2019/01/17 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
关于Js中new操作符的作用详解
2021/02/21 Javascript
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
Python实现两款计算器功能示例
2017/12/19 Python
python使用Matplotlib画饼图
2018/09/25 Python
python实现Flappy Bird源码
2018/12/24 Python
Python判断对象是否为文件对象(file object)的三种方法示例
2019/04/26 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
深入了解NumPy 高级索引
2020/07/24 Python
临床护士自荐信
2014/01/31 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
2015年重阳节主持词
2015/07/04 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL
Python Django ORM连表正反操作技巧
2021/06/13 Python
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis