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字典多条件排序方法实例
Jun 30 Python
详解Python命令行解析工具Argparse
Apr 20 Python
使用Python判断质数(素数)的简单方法讲解
May 05 Python
python监控linux内存并写入mongodb(推荐)
Sep 11 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
Jan 09 Python
python操作redis方法总结
Jun 06 Python
Centos部署django服务nginx+uwsgi的方法
Jan 02 Python
Python实现一个带权无回置随机抽选函数的方法
Jul 24 Python
Python基础之变量基本用法与进阶详解
Jan 03 Python
Django values()和value_list()的使用
Mar 31 Python
Python使用UDP实现720p视频传输的操作
Apr 24 Python
python 爬取吉首大学网站成绩单
Jun 02 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批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
php表单敏感字符过滤类
2014/12/08 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
php使用pdo连接sqlite3的配置示例
2016/05/27 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
详解vue引入子组件方法
2019/02/12 Javascript
实用Javascript调试技巧分享(小结)
2019/06/18 Javascript
基于webpack4+vue-cli3项目实现换肤功能
2019/07/17 Javascript
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
[36:19]2018DOTA2亚洲邀请赛 小组赛 A组加赛 Newbee vs LGD
2018/04/03 DOTA
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
Python探索之创建二叉树
2017/10/25 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
深入了解python列表(LIST)
2020/06/08 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
高中自我鉴定范文
2013/11/03 职场文书
创建文明学校实施方案
2014/03/11 职场文书
学生干部培训方案
2014/06/12 职场文书
2016年元旦致辞
2015/08/01 职场文书
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android