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中操作字符串之startswith()方法的使用
May 20 Python
Python爬虫实战:分析《战狼2》豆瓣影评
Mar 26 Python
Python实现加载及解析properties配置文件的方法
Mar 29 Python
浅谈Pandas 排序之后索引的问题
Jun 07 Python
Python实现注册、登录小程序功能
Sep 21 Python
python3使用flask编写注册post接口的方法
Dec 28 Python
python使用PIL模块获取图片像素点的方法
Jan 08 Python
详解pandas删除缺失数据(pd.dropna()方法)
Jun 25 Python
Python列表倒序输出及其效率详解
Mar 04 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
May 10 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
Python爬虫分析微博热搜关键词的实现代码
Feb 22 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
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
php cli 方式 在crotab中运行解决
2010/02/08 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
多个表单中如何获得这个文件上传的网址实现js代码
2013/03/25 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
Jquery 效果使用详解
2015/11/23 Javascript
ES6的新特性概览
2016/03/10 Javascript
基于javascript实现表格的简单操作
2016/05/21 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
Vue form 表单提交+ajax异步请求+分页效果
2017/04/22 Javascript
vuejs父子组件之间数据交互详解
2017/08/09 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
详解用js代码触发dom事件的实现方案
2020/06/10 Javascript
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
Python中的index()方法使用教程
2015/05/18 Python
python脚本设置系统时间的两种方法
2016/02/21 Python
简单掌握Python的Collections模块中counter结构的用法
2016/07/07 Python
Python线程池模块ThreadPoolExecutor用法分析
2018/12/28 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
应届毕业生就业自荐信
2013/10/26 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
村级个人对照检查材料
2014/08/22 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
《西门豹》教学反思
2016/02/23 职场文书
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python