python:批量修改文件的访问时间、修改时间、改变时间!

1.名词解释

访问时间:读取一次文件的内容,该时间便会更新。比如对这个文件使用less命令或者more命令。(ls、stat这样的命令不会修改文件访问时间)

修改时间:对文件内容修改一次便会更新该时间。例如使用vim等工具更改了文件内容并保存后,文件修改时间发生变化。

改变时间:更改文件的属性便会更新该时间,比如使用chmod命令更改文件属性,或者执行其他命令时隐式的附带更改了文件的属性,如文件大小等。

Windows系统中可以获取文件的创建时间,但在Linux系统中似乎无法获取,下面的代码以Linux系统为例。

2.如何获取文件的三种时间,并修改?

import os
import time

#月份字典
month_dict = {'Jau':'01','Feb':'02','Mar':'03','Apr':'04','May':'05','Jun':'06','Jul':'07','Aug':'08','Sep':'09','Oct':'10','Nov':'11','Dec':'12'}

#文件路經
filepath = '/data/share/ExtractMovie/720P-30/'
objpath = '/data/share/ExtractMovie/'

file_list = os.listdir(filepath)
for fName in file_list:
    fName_pre = os.path.splitext(fName)[0]

    #获取文件的访问时间、改变时间、修改时间
    atime = time.ctime(os.path.getatime(filepath+fName))
    ctime = time.ctime(os.path.getctime(filepath+fName))
    mtime = time.ctime(os.path.getmtime(filepath+fName))

    print('访问时间:',atime)
    print('改变时间:',ctime)
    print('修改时间:',mtime)

    #指定时间格式
    format = "%Y%m%d_%H%M%S"

    #转换访问时间、修改时间的内容格式
    a_Y = atime[20:24]
    a_m = month_dict[atime[4:7]]
    a_d = atime[8:10]
    a_H = atime[11:13]
    a_M = atime[14:16]
    a_S = atime[17:19]
    Access_time = a_Y + a_m + a_d+ '_' + a_H + a_M + a_S
    print('Access_time:',Access_time)

    c_Y = mtime[20:24]
    c_m = month_dict[mtime[4:7]]
    c_d = mtime[8:10]
    c_H = mtime[11:13]
    c_M = mtime[14:16]
    c_S = mtime[17:19]
    Modified_time = c_Y + c_m + c_d+ '_' + c_H + c_M + c_S
    print('Modified_time:',Modified_time)

    #创建struct_time对象
    atime_t = time.mktime(time.strptime(Access_time, format))
    mtime_t = time.mktime(time.strptime(Modified_time, format))

    #修改访问时间和修改时间
    os.utime(objpath+fName_pre+'.MOV', (atime_t, mtime_t))

3.使用命令修改文件的修改时间

touch -d "2019-01-02 08:08:08" SLV_VISION_1980.MOV

 

    原文作者:dulingwen
    原文地址: https://blog.csdn.net/dulingwen/article/details/90515082
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞