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中的字符串类型基本知识学习教程
Feb 04 Python
两个命令把 Vim 打造成 Python IDE的方法
Mar 20 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
Jun 30 Python
python中set()函数简介及实例解析
Jan 09 Python
在Django中URL正则表达式匹配的方法
Dec 20 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
Apr 11 Python
Python 面向对象部分知识点小结
Mar 09 Python
Django如何批量创建Model
Sep 01 Python
Python私有属性私有方法应用实例解析
Sep 15 Python
Python colormap库的安装和使用详情
Oct 06 Python
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
Apr 25 Python
Python各协议下socket黏包问题原理
Apr 12 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数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
2011/10/31 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
一个收集图片的bookmarlet(js 刷新页面中的图片)
2010/05/27 Javascript
js函数中onmousedown和onclick的区别和联系探讨
2013/05/19 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
Google 地图API Map()构造器详解
2016/08/06 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
python实现的各种排序算法代码
2013/03/04 Python
Python sys.path详细介绍
2013/10/17 Python
Python中title()方法的使用简介
2015/05/20 Python
Python类的用法实例浅析
2015/05/27 Python
pandas数据框,统计某列数据对应的个数方法
2018/04/11 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
老生常谈python中的重载
2018/11/11 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
Python3 pickle对象串行化代码实例解析
2020/03/23 Python
用python写PDF转换器的实现
2020/10/29 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
实习求职信
2013/12/01 职场文书
市场营销管理制度
2014/01/29 职场文书
家庭教育的心得体会
2014/09/01 职场文书
2015初中团委工作总结
2015/07/28 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python
我去timi了,一起去timi是什么意思?
2022/04/13 杂记
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js