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标准日志模块logging的使用方法
Nov 01 Python
tornado捕获和处理404错误的方法
Feb 26 Python
Python中使用Beautiful Soup库的超详细教程
Apr 30 Python
Python基于回溯法子集树模板解决选排问题示例
Sep 07 Python
Python使用re模块实现信息筛选的方法
Apr 29 Python
opencv python统计及绘制直方图的方法
Jan 21 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
wxPython电子表格功能wx.grid实例教程
Nov 19 Python
Ubuntu16.04安装python3.6.5步骤详解
Jan 10 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
Jupyter Notebook的连接密码 token查询方式
Apr 21 Python
python字符串拼接.join()和拆分.split()详解
Nov 23 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 开发环境配置(Zend Server安装)
2010/04/28 PHP
基于php 随机数的深入理解
2013/06/05 PHP
php调整服务器时间的方法
2015/04/03 PHP
php简单图像创建入门实例
2015/06/10 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
省市区三级联动下拉框菜单javascript版
2015/08/11 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
Python生成随机数的方法
2014/01/14 Python
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
Python实现的递归神经网络简单示例
2017/08/11 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
用TensorFlow实现戴明回归算法的示例
2018/05/02 Python
完美解决Python 2.7不能正常使用pip install的问题
2018/06/12 Python
Python pymongo模块常用操作分析
2018/09/01 Python
python中栈的原理及实现方法示例
2019/11/27 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
电气工程及其自动化专业求职信
2014/06/23 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
物业公司管理制度
2015/08/05 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
python通过opencv调用摄像头操作实例分析
2021/06/07 Python
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS