1 '''
2 写一个删除日志的程序,删除5天前或为空的日志,不包括当天的
3 1.删除5天前的日志文件
4 2.删除为空的日志文件
5 '''
6 import os
7 import time
8
9 def delete_logs_file():#清理日志
10 for cur_dir,dirs,files in os.walk('logs'):
11 print(cur_dir,dirs,files)
12 if files:#当文件列表不为空是,开始删除
13 for file_name in files:
14 file_time = get_filename_time(file_name)#获取文件名的时间
15 is_delete_file = check_time(file_time)
16 file_path = os.path.join(cur_dir,file_name)
17 if is_delete_file:
18 os.remove(file_path)
19 else:
20 if check_time_is_today(file_time):#文件时间不是今天
21 if check_file_content(file_path):#文件为空,可以删除
22 print('文件为空',file_path)
23 os.remove(file_path)
24
25
26
27 def get_filename_time(file_name):#获取文件名中的时间
28 if file_name:
29 temp = file_name.split('_')
30 file_name_time = temp[1][:10]
31 return file_name_time
32
33 def check_time_is_today(time_str):#判断时间是否为当天
34 today = time.strftime('%Y-%m-%d')#获取当天的格式化时间
35 if today == time_str:
36 return False
37 else:
38 return True
39
40 def check_time(time_str):#判断时间是否为5天前的时间
41 now_time = time.time()#获取当前的时间戳
42 day_ago = now_time-5*24*60*60#获取5天前的时间戳
43 temp_time = time.strptime(time_str,'%Y-%m-%d')#获取传入时间的元组
44 time_zone = time.mktime(temp_time)
45 if time_zone <= day_ago:
46 return True
47 else:
48 return False
49
50 def delete_file(file_path):#删除指定文件
51 os.remove(file_path)
52
53 def check_file_content(file_path):#判断文件是否为空
54 file_size = os.path.getsize(file_path)
55 if file_size == 0:
56 return True
57 else:
58 return False
59
60 delete_logs_file()

python使用笔记13--清理日志小练习的更多相关文章

  1. python 学习笔记 13 -- 经常使用的时间模块之time

    Python 没有包括相应日期和时间的内置类型.只是提供了3个相应的模块,能够採用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包括一些函数用于获取时钟时间和处 ...

  2. Python 学习笔记13:Python + wsgi + django 配置。坑爹的python3和wsgi不兼容的解决

    今人不见古时月,今月曾经照古人.生命是如此的美丽与短暂! 学习Python已经两个月了,Python的语法通过做简单的语法题和看Python语法介绍,有了初步的了解.但上班还是要做别的事情,所以感觉学 ...

  3. python学习笔记(13):python并发编程以及系统常用模块

    一.进程与线程 1.进程:程序的一次执行(程序装载入内存,系统分配资源运行).n 每个进程有自己的内存空间.数据栈等,只能使用进程间通讯,而不能直接共享信息 2.线程:所有线程运行在同一个进程中,共享 ...

  4. Python入门笔记(13):列表解析

    一.列表解析 列表解析来自函数式编程语言(haskell),语法如下: [expr for iter_var in iterable] [expr for iter_var in iterable i ...

  5. Python学习笔记13—错误和异常

    常见的异常:

  6. HTML5自学笔记[ 13 ]canvas绘图小实例之方块移动

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  7. python学习笔记13(模块、包)

    在Python中有一个概念叫做模块(module),比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块. 模块文件以.py后缀结 ...

  8. Python学习笔记13:标准库之子进程(subprocess包)

    ubprocess包主要功能是运行外部的命令和程序.从这个意义上来说,subprocess的功能与shell类似. subprocess以及经常使用的封装函数 当我们执行python的时候,我们都是在 ...

  9. Python 学习笔记13 类 - 创建和简单使用

    介绍: 面向对象编程是一种非常有效的软件编写方法之一,在面向对象编程中,我们会编写表示现实世界中的事物或者情景的类,并基于类来创建对象. 在编写类的的时候,这些类对象一般都有通用的行为或者属性.基于类 ...

随机推荐

  1. [论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion

    [论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 (1 ...

  2. redis主从架构宕机问题手动解决

    1    主机宕机 1.  设置端口6379是主机,端口6380是从机,全部都正常启动 2.  验证在6379写入数据,在6380也能得到数据 3.  现在将6379主机停掉,模拟主机宕机 4.  由 ...

  3. FinFET与2nm晶圆工艺壁垒

    FinFET与2nm晶圆工艺壁垒 谈到半导体工艺尺寸的时候,通常对于下面的一串数字耳熟能详:3um.2um.1.5um.1um.0.8um.0.5um.0.35um.0.25um.0.18um.0.1 ...

  4. GPU上的基本线性代数

    GPU上的基本线性代数 cuBLAS库提供了基本线性代数子例程(BLAS)的GPU加速实现.cuBLAS通过针对NVIDIA GPU进行了高度优化的嵌入式行业标准BLAS API来加速AI和HPC应用 ...

  5. RGB-D相机视觉SLAM

    RGB-D相机视觉SLAM Dense Visual SLAM for RGB-D Cameras 开源代码地址:  vision.in.tum.de/data/software/dvo 摘要 本文提 ...

  6. NCF 如何导入Excel数据

    简介 学了上一节的WebApi之后,我们会发现一片新天地 本节跟大家聊一聊,如何把本地的Excel数据导入到NCF中 仓库地址:https://github.com/NeuCharFramework/ ...

  7. 【NX二次开发】Block UI 角度尺寸

    属性说明 常规         类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical ...

  8. 魔镜魔镜,今天有雨吗?——GitHub 热点速览 v.21.25

    作者:HelloGitHub-小鱼干 上周智能驾驶项目的作者曾经做过一个透明小电视机,同透明电视机类似 MagicMirror 也是一个神奇的智能项目,使用它进行模块定制开发,你将拥有一块非常酷炫的智 ...

  9. csps前小结

    冒着题没改完颓废被发现的风险来写博客 好像离csps只剩两天了,然而没啥感觉 最近考试有时考得还算可以,有时也会很炸 今天考试事实上心态啥崩,因为T1结论题一直没思路,想了一个小时连暴力都没打 过了一 ...

  10. Android系统编程入门系列之应用初始化Application

    在上一篇文章中我们了解到Android系统启动应用的时候,会首先加载AndroidManifest.xml清单文件中的一系列信息,在清单文件中如果不指定<application></ ...