定时清除某个目录的所有文件,但不删除其嵌套的目录

2019-04-28  本文已影响0人  洛奇lodge

第一种方式,使用python语言,做成接口形式,上传文件时,就去删除过期的文件

def del_file(dir, frontHours):
   """
   删除过期文件
  :param dir: 要删除文件的目录路径
  :param frontDay: 指定当前时间的前几个小时
  :return:
  """
   if dir.endswith('/'):
       dir = dir[:-1]
   # 现在时间
   starttime = datetime.now()
   # 过期时间
   expire_time = str(starttime + timedelta(hours=-frontHours)).split('.')[0]
   for root, dir_list, file_list in os.walk(dir):
       for i in file_list:
           file_path = root + '/' +i
           # 最后一次修改的时间
           last1 = os.stat(file_path).st_mtime
           # 将时间戳格式化成时间格式的字符串
          filetime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(last1))
          # 小于过期时间的文件都删除
          if expire_time > filetime:
              os.remove(file_path)

第两种方式:使用shell语言,在LIUNX系统设置定时任务

1、准备一个shell脚本,找出指定的文件并删除
 #!/bin/sh
 # 定时将10个小时之前的文件删除
 # 格式:find 指定目录 -mmin +分钟  -type  文件类型 -exec 命令 {} \;
 find /home/python/Desktop/test/ -mmin +600 -type f -exec rm -f {} \;
2、设置定时任务,定时执行shell脚本
2.1 查看liunx系统有哪些定时任务在执行: crontab -l
2.2 输入crontab -e, 首次进入会提示选择编辑器,选用3
2.3 设置定时任务
  # 在liunx系统设置定时, 每天凌晨执行一次
  0 0 * * * bash /home/python/Desktop/upload_download/clear_file.sh
2.3 删除定时:crontab -r
2.4 时间格式
上一篇下一篇

猜你喜欢

热点阅读