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之网站的结构
Oct 24 Python
python解析xml文件实例分析
May 27 Python
从零开始学Python第八周:详解网络编程基础(socket)
Dec 14 Python
Python实现的简单dns查询功能示例
May 24 Python
Python列表推导式与生成器用法分析
Aug 02 Python
python实现图片筛选程序
Oct 24 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
Python GUI编程 文本弹窗的实例
Jun 11 Python
Django项目中实现使用qq第三方登录功能
Aug 13 Python
IDLE下Python文件编辑和运行操作
Apr 25 Python
Python Django获取URL中的数据详解
Nov 01 Python
Python实现文字pdf转换图片pdf效果
Apr 03 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
人族 Terran 魔法与科技
2020/03/14 星际争霸
用户的详细注册和判断
2006/10/09 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
PHP输出Excel PHPExcel的方法
2018/07/26 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
javascript控制在光标位置插入文字适合表情的插入
2014/06/09 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
vue组件初学_弹射小球(实例讲解)
2017/09/06 Javascript
浅谈基于Vue.js的移动组件库cube-ui
2017/12/20 Javascript
vue实现word,pdf文件的导出功能
2018/07/31 Javascript
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
webpack3里使用uglifyjs压缩js时打包报错的解决
2018/12/13 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
Python将xml和xsl转换为html的方法
2015/03/10 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
Python进度条实时显示处理进度的示例代码
2018/01/30 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
Python中的asyncio代码详解
2019/06/10 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
2019/07/31 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
2019/12/10 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
社团文化节邀请函
2014/01/10 职场文书
班主任新年寄语
2014/04/04 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书
SpringBoot快速入门详解
2021/07/21 Java/Android