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 Web开发模板引擎优缺点总结
May 06 Python
python刷投票的脚本实现代码
Nov 08 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
Jul 11 Python
Python 读写文件和file对象的方法(推荐)
Sep 12 Python
python操作mysql数据库
Mar 05 Python
python图像常规操作
Nov 11 Python
Django 中间键和上下文处理器的使用
Mar 17 Python
python使用yield压平嵌套字典的超简单方法
Nov 02 Python
Docker部署Python爬虫项目的方法步骤
Jan 19 Python
Python日志logging模块功能与用法详解
Apr 09 Python
python上下文管理的使用场景实例讲解
Mar 03 Python
Pygame Draw绘图函数的具体使用
Nov 17 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学习之变量的使用
2011/05/29 PHP
PHP之数组学习
2011/05/29 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
PHP redis实现超迷你全文检索
2017/03/04 PHP
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
浅析vue中的MVVM实现原理
2019/03/04 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
vue-model实现简易计算器
2020/08/17 Javascript
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
Python实现身份证号码解析
2015/09/01 Python
Python封装原理与实现方法详解
2018/08/28 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
static关键字的用法
2013/10/07 面试题
毕业生就业自荐书
2013/12/15 职场文书
运动会广播稿150字
2014/02/19 职场文书
担保书格式及范文
2014/04/01 职场文书
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
施工安全协议书范本
2014/09/26 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
医生见习报告范文
2014/11/03 职场文书
党建工作目标管理责任书
2015/01/29 职场文书
辩论会主持词
2015/07/03 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
mysql事务隔离级别详情
2021/10/24 MySQL
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫