本文主要是介绍python删除指定文件夹下指定扩展名的文件(按日期排序,保留不删除的文件数量)(tcy),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#!/usr/bin/env python3
# -*- coding: utf-8-*-
# python 获取文件大小,创建时间和访问时间
# write by tcy shanghai songjiang 2020/2/23import time,os
import pandas as pdclass File:def __init__(self):pass# 1.'''把时间戳转化为时间: 1479264792 to 2016-11-16 10:53:12'''def TimeStampToTime(self,timestamp)->str:timeStruct = time.localtime(timestamp)return time.strftime('%Y-%m-%d %H:%M:%S',timeStruct)# 2、'''获取文件的大小,结果保留两位小数,单位为B'''def get_FileSize(self,filePath)->int:fsize = os.path.getsize(filePath)return fsize# 3、'''获取文件的访问时间'''def get_FileAccessTime(self,filePath)->str:t = os.path.getatime(filePath)return self.TimeStampToTime(t)# 4、'''获取文件的创建时间'''def get_FileCreateTime(self,filePath)->str:t = os.path.getctime(filePath)return self.TimeStampToTime(t)# 5、'''获取文件的修改时间'''def get_FileModifyTime(self,filePath)->str:t = os.path.getmtime(filePath)return self.TimeStampToTime(t)#6.获取指定路径下所有文件:指定扩展名def get_file_names(self,filePath,pathMode=False,extension='.sql')->list:for root, dirs, files in os.walk(filePath):# print(root) #当前目录路径# print(dirs) #当前路径下所有子目录# print(files) #当前路径下所有非目录子文件files = os.path.join(root,files) if pathMode else filesreturn [v for v in files if os.path.splitext(v)[1]==extension]#6.获取指定路径下所有文件:指定扩展名def get_files(self,filePath,pathMode=False,extension='.sql')->list:files= os.listdir(filePath)if pathMode:files=[os.path.join(filePath,v) for v in files]return [v for v in files if os.path.splitext(v)[1]==extension]#7.删除文件xxx.sql:保留最近3个创建的文件def delfile(self,path,retained_number=3,extension='.sql'):lst=self.get_files(path,pathMode=True,extension=extension)index=[self.get_FileCreateTime(v) for v in lst]s=pd.Series(lst,pd.DatetimeIndex(index))if s.size<retained_number:returns=s.sort_index(ascending=True)[:s.size-3]for f in s:os.remove(f)if __name__=="__main__":a=File()file=r'D:\DB\new_futures2020_02_23_14_13_07.sql'path=r'D:\DB'print(a.get_FileAccessTime(file))print(a.get_FileCreateTime(file))print(a.get_FileModifyTime(file))print(a.get_FileSize(file))print('-------------------------------------------------------------')print(a.get_files(path))print(a.get_file_names(path))a.delfile(path)
这篇关于python删除指定文件夹下指定扩展名的文件(按日期排序,保留不删除的文件数量)(tcy)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!