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实现socket端口重定向示例
Feb 10 Python
Python两个整数相除得到浮点数值的方法
Mar 18 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
Apr 24 Python
Python psutil模块简单使用实例
Apr 28 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
Jan 07 Python
python 获取网页编码方式实现代码
Mar 11 Python
Python面向对象程序设计之继承与多继承用法分析
Jul 13 Python
python3的输入方式及多组输入方法
Oct 17 Python
深入浅析Python 中 is 语法带来的误解
May 07 Python
Python for循环搭配else常见问题解决
Feb 11 Python
Python序列化pickle模块使用详解
Mar 05 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
Apr 14 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
PHP - Html Transfer Code
2006/10/09 PHP
让你的PHP同时支持GIF、png、JPEG
2006/10/09 PHP
php 无限级缓存的类的扩展
2009/03/16 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
js 实现打印网页中定义的部分内容的代码
2010/04/01 Javascript
jQuery中scrollTop()方法用法实例
2015/01/16 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
2019/12/10 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
[02:29]DOTA2英雄基础教程 陈
2013/12/17 DOTA
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
详解Python中where()函数的用法
2018/03/27 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
2018/06/14 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
简单了解python gevent 协程使用及作用
2019/07/22 Python
python批量解压zip文件的方法
2019/08/20 Python
在django项目中导出数据到excel文件并实现下载的功能
2020/03/13 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
俄罗斯最大的消费电子连锁零售商:Mvideo
2017/06/25 全球购物
学生手册家长评语
2014/02/10 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
《彩色世界》教学反思
2014/04/12 职场文书
2015年秘书个人工作总结
2015/04/25 职场文书
运动会观后感
2015/06/09 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
Python基础之tkinter图形化界面学习
2021/04/29 Python
分析设计模式之模板方法Java实现
2021/06/23 Java/Android
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python