python 两种方法修改文件的创建时间、修改时间、访问时间
突如其来想知道一下python如何修改文件的属性(创建、修改、访问时间),于是就去网上搜集了可行方案,也就有了这篇博客
方案一
fromwin32fileimportCreateFile,SetFileTime,GetFileTime,CloseHandle fromwin32fileimportGENERIC_READ,GENERIC_WRITE,OPEN_EXISTING frompywintypesimportTime#可以忽视这个Time报错(运行程序还是没问题的) importtime defmodifyFileTime(filePath,createTime,modifyTime,accessTime,offset): """ 用来修改任意文件的相关时间属性,时间格式:YYYY-MM-DDHH:MM:SS例如:2019-02-0200:01:02 :paramfilePath:文件路径名 :paramcreateTime:创建时间 :parammodifyTime:修改时间 :paramaccessTime:访问时间 :paramoffset:时间偏移的秒数,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) return0 except: return1 deftimeOffsetAndStruct(times,format,offset): returntime.localtime(time.mktime(time.strptime(times,format))+offset) if__name__=='__main__': #需要自己配置 cTime="2019-12-1321:51:02"#创建时间 mTime="2019-02-0200:01:03"#修改时间 aTime="2019-02-0200:01:04"#访问时间 fName=r"E:\test_pro\fileOperate\test.xlsx"#文件路径,文件存在才能成功(可以写绝对路径,也可以写相对路径) offset=(0,1,2)#偏移的秒数(不知道干啥的) #调用函数修改文件创建时间,并判断是否修改成功 r=modifyFileTime(fName,cTime,mTime,aTime,offset) ifr==0: print('修改完成') elifr==1: print('修改失败')
方案二(无法修改文件创建时间)
可以去这里http://tools.jb51.net/code/unixtime/转换时间,也可以自己处理时间戳与格式化时间
importos 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修改文件的资料请关注毛票票其它相关文章!