Python实现批量修改文件时间属性

 更新时间:2023年11月09日 09:25:08   作者:恋恋西风  
我们有时候需要修改文件的“修改时间” 、 “访问时间”,“创建时间” ,此时如果使用Python批量实现应该会方便很多,下面小编就来为大家介绍一下具体实现方法吧

前言

有时候需要修改文件的“修改时间” 、 “访问时间”,“创建时间” 使用 Python 写出来简单好用。

探索

读取文件的属性时间

import os
import time
 
# 获取文件的基本属性
def get_data(file_path, change):
    # 文件创建时间
    create_time = os.path.getctime(file_path)
    create_time1 = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(create_time))
 
    # 文件的修改时间
    modification_time = os.path.getmtime(file_path)
    modification_time1 = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(modification_time))
 
    # 文件的访问时间
    access_time = os.path.getatime(file_path)
    access_time1 = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(access_time))
 
    table.add_row(create_time1, modification_time1, access_time1, change)

更改文件属性时间

import os
import time
 
def change_time(file_path):
    now = time.time()  # 获取时间戳
    localtime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(now))  # 当前时间
 
    os.utime(file_path, (now, now))

注意:这里无法修改创建时间,只能走另一种方法:

使用 win32file 修改时间属性

from win32con import FILE_FLAG_BACKUP_SEMANTICS
from win32con import FILE_SHARE_WRITE
from win32file import CloseHandle
from win32file import CreateFile
from win32file import GENERIC_WRITE
from win32file import OPEN_EXISTING
from win32file import SetFileTime
 
createTime = "2019-12-13 21:51:02"  # 创建时间
modifyTime = "2019-02-02 00:01:03"  # 修改时间
accessTime = "2019-02-02 00:01:04"  # 访问时间
 
# 修改文件时间
def modifyFileTime(filePath ):
    try:
        format_str = "%Y-%m-%d %H:%M:%S"  # 时间格式
        f = CreateFile(filePath, GENERIC_WRITE, FILE_SHARE_WRITE, None, OPEN_EXISTING,
                       FILE_FLAG_BACKUP_SEMANTICS, 0)
 
        create_time = datetime.datetime.strptime(createTime, format_str)
        update_time = datetime.datetime.strptime(modifyTime, format_str)
        access_time = datetime.datetime.strptime(accessTime, format_str)
        SetFileTime(f, create_time, update_time, access_time)
        CloseHandle(f)
 
        return True
    except Exception as e:
        print(e)
        return False

完整代码

import os
import time
import datetime
import win32timezone
 
from win32con import FILE_FLAG_BACKUP_SEMANTICS
from win32con import FILE_SHARE_WRITE
from win32file import CloseHandle
from win32file import CreateFile
from win32file import GENERIC_WRITE
from win32file import OPEN_EXISTING
from win32file import SetFileTime
 
createTime = "2019-12-13 21:51:02"  # 创建时间
modifyTime = "2019-02-02 00:01:03"  # 修改时间
accessTime = "2019-02-02 00:01:04"  # 访问时间
 
# 修改文件时间
def modifyFileTime(filePath ):
    try:
        format_str = "%Y-%m-%d %H:%M:%S"  # 时间格式
        f = CreateFile(filePath, GENERIC_WRITE, FILE_SHARE_WRITE, None, OPEN_EXISTING,
                       FILE_FLAG_BACKUP_SEMANTICS, 0)
 
        create_time = datetime.datetime.strptime(createTime, format_str)
        update_time = datetime.datetime.strptime(modifyTime, format_str)
        access_time = datetime.datetime.strptime(accessTime, format_str)
        SetFileTime(f, create_time, update_time, access_time)
        CloseHandle(f)
 
        return True
    except Exception as e:
        print(e)
        return False
 
 
dircount=0
filecount=0
# i负责记录深度;
def deepDir(filepath,flag=0):
    global filecount
    global dircount
    filepath+="/"
    file_list = os.listdir(filepath)
    flag+=2
    # 负责存放目录名称
    dirls=[]
    for tempfile in file_list:
        if os.path.isdir(filepath+"/"+tempfile):
            dirls.append(filepath+"/"+tempfile)
        else:
            filecount+=1
            print('-'*flag,end='')
            print(tempfile)
            modifyFileTime(filepath+"/"+tempfile)
    for tempfile in dirls:
        dircount+=1
        deepDir(tempfile,flag)
 
if __name__=="__main__":
    # try:
    dir=input('please copy your dir and paste here (Be sure to copy directly):')
    deepDir(dir.replace('\\','/'))
 
    print(f'completed file nums is:{filecount} and dir num is {dircount}!')

到此这篇关于Python实现批量修改文件时间属性的文章就介绍到这了,更多相关Python修改文件时间属性内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python数据模型与Python对象模型的相关总结

    Python数据模型与Python对象模型的相关总结

    这篇文章主要介绍了Python数据模型与Python对象模型的相关总结,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2021-01-01
  • Python使用 TCP协议实现智能聊天机器人功能

    Python使用 TCP协议实现智能聊天机器人功能

    TCP协议适用于对效率要求相对较低而准确性要求很高的场合,下面通过本文给大家介绍基于Python 使用 TCP 实现智能聊天机器人,需要的朋友可以参考下
    2022-05-05
  • opencv设置采集视频分辨率方式

    opencv设置采集视频分辨率方式

    今天小编就为大家分享一篇opencv设置采集视频分辨率方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python小程序之飘落的银杏

    python小程序之飘落的银杏

    这篇文章主要介绍了利用制作的python小程序-飘落的银杏,代码详细,简单易懂,有需要练习python的朋友可以参考下
    2021-04-04
  • 11个并不被常用但对开发非常有帮助的Python库

    11个并不被常用但对开发非常有帮助的Python库

    这篇文章主要介绍了11个并不被常用但对开发非常有帮助的Python库,这些库大都被放在Github上开源、并且经过一段时间的编写和维护,对Python开发有一定的帮助,需要的朋友可以参考下
    2015-03-03
  • Python使用PyMongo4.x操作MongoDB的教程分享

    Python使用PyMongo4.x操作MongoDB的教程分享

    PyMongo是一个Python编程语言中用于连接和操作MongoDB数据库的库,它提供了丰富的功能和API,使开发者能够在Python中轻松地进行MongoDB的数据交互和管理,本文给大家总结了Python如何使用PyMongo4.x操作MongoDB,需要的朋友可以参考下
    2023-09-09
  • pyqt5 使用setStyleSheet设置单元格的边框样式操作

    pyqt5 使用setStyleSheet设置单元格的边框样式操作

    这篇文章主要介绍了pyqt5 使用setStyleSheet设置单元格的边框样式操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 使用py2exe在Windows下将Python程序转为exe文件

    使用py2exe在Windows下将Python程序转为exe文件

    这篇文章主要介绍了Windows下用py2exe将Python程序转为exe文件的方法,注意py2exe只是负责文件格式的转换,并不能将Python程序编译为机器码,要的朋友可以参考下
    2016-03-03
  • Python import自定义模块方法

    Python import自定义模块方法

    python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。下面给大家介绍python import自定义模块方法,需要的的朋友参考下
    2015-02-02
  • 详解python opencv图像混合算术运算

    详解python opencv图像混合算术运算

    这篇文章主要介绍了python opencv图像混合算术运算的相关知识,本文通过实例图文相结合给大家介绍的非常详细,需要的朋友可以参考下
    2021-09-09

最新评论