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调用短信猫控件实现发短信功能实例
Jul 04 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
Jul 07 Python
对pandas的行列名更改与数据选择详解
Nov 12 Python
Python文件如何引入?详解引入Python文件步骤
Dec 10 Python
Django实现一对多表模型的跨表查询方法
Dec 18 Python
Python3 执行系统命令并获取实时回显功能
Jul 09 Python
Python3从零开始搭建一个语音对话机器人的实现
Aug 23 Python
python使用if语句实现一个猜拳游戏详解
Aug 27 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
Dec 13 Python
python实现字典嵌套列表取值
Dec 16 Python
Pandas把dataframe或series转换成list的方法
Jun 14 Python
python实现简单区块链结构
Apr 25 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
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
PHP中判断变量为空的几种方法分享
2013/08/26 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
javascript自执行函数之伪命名空间封装法
2010/12/25 Javascript
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
2015/06/29 Javascript
详解基于Bootstrap扁平化的后台框架Ace
2015/11/27 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
2018/02/08 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
微信小程序自定义导航栏
2018/12/31 Javascript
微信小程序封装的HTTP请求示例【附升级版】
2019/05/11 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
Python批量转换文件编码格式
2015/05/17 Python
Python多线程扫描端口代码示例
2018/02/09 Python
python异步存储数据详解
2019/03/19 Python
Python面向对象进阶学习
2019/05/21 Python
Django关于admin的使用技巧和知识点
2020/02/10 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
服装公司总经理岗位职责
2013/11/30 职场文书
写给妈妈的道歉信
2014/01/11 职场文书
公司门卫管理制度
2014/02/01 职场文书
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
情人节活动策划方案
2014/02/27 职场文书
学校三节实施方案
2014/06/09 职场文书
python中opencv实现图片文本倾斜校正
2021/06/11 Python
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers