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打开网页和暂停实例
Sep 30 Python
Python实现命令行通讯录实例教程
Aug 18 Python
Python中is与==判断的区别
Mar 28 Python
Python在图片中添加文字的两种方法
Apr 29 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
pytorch 把MNIST数据集转换成图片和txt的方法
May 20 Python
Python IDLE清空窗口的实例
Jun 25 Python
利用python画出折线图
Jul 26 Python
python pandas实现excel转为html格式的方法
Oct 23 Python
Python自定义函数计算给定日期是该年第几天的方法示例
May 30 Python
关于python pycharm中输出的内容不全的解决办法
Jan 10 Python
python利用xpath爬取网上数据并存储到django模型中
Feb 26 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实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
JavaScript中的其他对象
2008/01/16 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
jquery 字符串切割函数substring的用法说明
2014/02/11 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
AngularJS入门之动画
2016/07/27 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
2019/09/18 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
详细介绍Python的鸭子类型
2016/09/12 Python
Python爬虫之xlml解析库(全面了解)
2017/08/08 Python
解决Python对齐文本字符串问题
2019/08/28 Python
Keras 快速解决OOM超内存的问题
2020/06/11 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
法国一家芭蕾舞鞋公司:Repetto
2018/11/12 全球购物
上海奥佳笔试题面试题
2016/11/16 面试题
应届医学毕业生求职信分享
2013/12/02 职场文书
组织关系转移介绍信
2014/01/16 职场文书
公司周年庆典策划方案
2014/05/17 职场文书
加薪申请报告范本
2015/05/15 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
Javascript中的解构赋值语法详解
2021/04/02 Javascript