Python 脚本递归删除 指定文件夹目录下 指定年份 删除所有文件

来源:GK导航    date:2022-9-6    标签:,     admin

场景需求

服务器的磁盘被日志等一些老旧数据塞满了,如果人工删除的话需要很长时间。所以这边通过python脚本来做删除。

本脚本需要在python3中运行。

功能

指定文件夹下递归删除所有修改日期在指定年份的文件。

代码实例

#!/usr/bin/env python # coding: utf-8 import os , time , datetime , getopt ,sys def usage():     print('usage:%s --input=[value] --output=[value] ')     sys.exit()  def listDir(fileDir,year):      for eachFile in os.listdir(fileDir):         if os.path.isfile(fileDir+"/"+eachFile):   #如果是文件,判断最后修改时间,符合条件进行删除             ft = os.stat(fileDir+"/"+eachFile)             ltime = time.localtime(int(ft.st_mtime)) #获取文件最后修改时间             file_year = time.strftime("%Y",ltime)             if int(file_year) == int(year) :                          print("删除文件: "+fileDir+"/"+eachFile)                 # os.remove(fileDir+"/"+eachFile);   #删除文件         elif os.path.isdir(fileDir+"/"+eachFile) :    #如果是文件夹,继续递归             listDir(fileDir+"/"+eachFile , year)  def del_emp_dir(path):     for root, dirs, files in os.walk(path):         if not os.listdir(root):             try:                 os.rmdir(root)             except Exception as e:                 pass  if __name__ == '__main__':     options, args = getopt.getopt(sys.argv[1:], '',['path=','year='])     for name, value in options:         if name in ('-p','--path'):             path = format(value)         elif name in ('-y','--year'):             year = format(value)      if 'path' not in locals().keys() or not 'year' in locals().keys() :         usage()      listDir(fileDir = path,year=year)     del_emp_dir(path) 

调用方法

python .deleteFilesByYear.py --path="D:Downloads" --year=2019

腾讯云限时秒杀【点击购买】

搬瓦工,CN2高速线路,1GB带宽,电信联通优化KVM,延迟低,速度快,建站稳定,搬瓦工BandwagonHost VPS优惠码BWH26FXH3HIQ,支持<支付宝> 【点击购买】!

Vultr$3.5日本节点,512M内存/500G流量/1G带宽,电信联通优化,延迟低,速度快【点击购买】!

阿里云香港、新加坡VPS/1核/1G/25G SSD/1T流量/30M带宽/年付¥288【点击购买】

Python 脚本递归删除 指定文件夹目录下 指定年份 删除所有文件

`微信`扫码 加好友