python脚本删除指定目录下指定文件类型的文件

话不多说,先上代码,分为两部分,一个py 文件和一个ini 的配置文件

感觉看注释应该比较容易看懂,不懂的或者有不对的地方可以在评论下提出,大家互相学习

delFile.py 文件内容如下:

import time
import os
import configparser  # 读取配置文件的包
import psutil  # 获取系统信息模块,可以获取cpu,内存,磁盘的使用情况
import logging
import threading  # 线程相关的包
# 设置日志信息格式
logging.basicConfig(filename="example.log",
                    level=logging.DEBUG,
                    format='%(asctime)s   %(levelno)s %(filename)s %(process)d %(message)s',
                    datefmt='%a, %d %b %Y %H:%M:%S')
# 配置文件相关
config = configparser.ConfigParser()  # 生成ConfigParser 对象
config.read('config.ini', encoding='utf-8')  # 读取配置文件
all_sections = config.sections()  # 获取所有节点
items = config.items(all_sections[0])  # 获取节点下的键值对

# 获取所需配置的值
file = config.get(all_sections[0], 'file')  # 指定目录
filesuffix = config.get(all_sections[0], 'filesuffix')  # 指定格式
exittime = config.getint(all_sections[0], 'exittime')  # 文件多长时间删除
timing = config.get(all_sections[0], 'timing')


# 获取文件创建至今的时间
def getfiletime(file):
    # 获取创建的时间并转换为时间戳
    timeArray = time.strptime(time.ctime(os.path.getctime(file)), "%a %b %d %H:%M:%S %Y")
    filetime = int(time.mktime(timeArray))
    # 计算创建时间戳和当前时间戳的差值
    timeStamp = int(time.time()) - filetime
    # 转换为天数
    createtime = timeStamp / 3600 / 24
    return createtime


# 删除指定后缀名,指定创建文件超过N天的文件
def delfile(file):
    list = os.listdir(file)
    delnum = 0  # 删除的文件个数# 获取指定目录下的所有文件名
    for i in range(len(list)):
        namelist = list[i].split(".")
        suffix = namelist[len(namelist) - 1]  # 获取后缀
        filename = file + "" + list[i]  # 文件的路径+名字
        if (suffix == filesuffix) and (getfiletime(filename) > exittime):
            os.remove(filename)
            delnum += 1
            logging.info("删除的文件是:" + list[i])
            print(("删除的文件是:" + list[i]))
    logging.info(("删除了%d个文件" % delnum))


# 正式使用,每天定点执行
# while True:
#     time.sleep(1) # while 循环间隔 1s , 降低cpu 占用率
#     time_now=time.strftime("%H:%M:%S",time.localtime(time.time()))
#     if time_now==timing:
#         logging.info("开始执行定时任务")
#         delfile(file)
#         time.sleep(2) # 防止在1s内被执行两次

# 测试用(每分钟执行一次)
logging.info("系统启动")
while True:
    time.sleep(0.1)  # while 循环间隔 1s , 降低cpu 占用率
    time_now = time.strftime("%S", time.localtime(time.time()))
    if time_now > "50":
        logging.info("开始执行定时任务")
        delfile(file)
        time.sleep(2)

另外还有一个配置文件 config.ini,放到.py文件的同级目录下

[delFile]
file = D:          
filesuffix = h
exittime = 0
timing = 08:00:00

用到的包以及相关的学习网站

  1. import time # 时间相关的包 相关内容点击此链接 学习time 模块 https://www.runoob.com/python/python-date-time.html
  2. import os # 文件相关的包 相关内容可以点击此连接学习 https://www.runoob.com/python/os-file-methods.html
  3. import configparser # 读取配置文件的包 https://www.cnblogs.com/ming5218/p/7965973.html
  4. import logging # 打印日志的包 cuiqingcai.com/6080.html

  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
afiregame
  • 本文由 发表于 2021年12月11日22:51:17
  • 转载请务必保留本文链接:https://www.afiregame.com/zixun/9352/
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: