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. JVM-垃圾收集算法基础

    目录 目录 前言 手动释放内存导致的问题 垃圾判定方法 哪些对象是垃圾? 引用计数算法 可达性分析法 垃圾收集算法 标记-清除 优点 缺点 优化 标记-复制 优点 缺点 优化 标记-整理 优点 缺点 ...

  2. 激光雷达lidar与点云数据

    激光雷达lidar与点云数据 DEM是分布和显示数字地形的首个广泛使用的机制. 点云是在空间中随机放置的3D点的集合.传感器发出能量脉冲并乘以其返回行程(TWTT,双向行程时间).知道了传感器的位置以 ...

  3. 如何为应用选择最佳的FPGA(下)

    如何为应用选择最佳的FPGA(下) How to select an FPGA board? FPGA板的选择在很大程度上受FPGA本身的影响,也受整个板的特性和性能的影响.们已经在上面的章节中讨论了 ...

  4. windows 下安装Charles,破解,安装证书,设置可抓取https包

    参考地址: https://www.zzzmode.com/mytools/charles/ 一.下载后进行安装  二.安装后进行破解 按照参考中的链接破解即可 三.Charles在windows证书 ...

  5. 三色标记法与读写屏障, G1工作过程

    https://www.jianshu.com/p/12544c0ad5c1 https://www.cnblogs.com/GrimMjx/p/12234564.html 自我总结和记忆: 为了解决 ...

  6. Redis事务操作

    Redis事务操作 Redis事务本质: ​ 一组命令的集合 , 一个事务中的所有命令都会被序列化 , 在事务执行过程中 , 会按照顺序执行 一次性 : 事务之间的事情,会一次性执行,而不是立刻执行 ...

  7. 【NX二次开发】NX内部函数,libufunx.dll文件中的内部函数

    本文分为两部分:"带参数的函数"和 "带修饰的函数". 浏览这篇博客前请先阅读: [NX二次开发]NX内部函数,查找内部函数的方法 带参数的函数: void e ...

  8. 【题解】入阵曲 luogu3941 前缀和 压维

    丹青千秋酿,一醉解愁肠. 无悔少年枉,只愿壮志狂 题目 题目描述 小 F 很喜欢数学,但是到了高中以后数学总是考不好. 有一天,他在数学课上发起了呆:他想起了过去的一年.一年前,当他初识算法竞赛的 时 ...

  9. npm 操作代码

    npm cache clean -force    //强制清除缓,比如安装echarts失败后,清除,在安装

  10. vscode中html和vue没有自动补全,需要怎么配置

    先安装HTML Snippets插件 点击 文件-首选项-设置,然后根据以下操作 然后在setting.json中加入以下代码 然后就有提示了