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