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

 

發佈了61 篇原創文章 · 獲贊 61 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章