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

话不多说,先上代码,分为两部分,一个py 文件和一个ini 的配置文件
感觉看注释应该比较容易看懂,不懂的或者有不对的地方可以在评论下提出,大家互相学习
delFile.py 文件内容如下:

import time
import os
import configparser  # 读取配置文件的包
import logging

# 设置日志信息格式
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(0.1) # while 循环间隔 1s , 降低cpu 占用率,否则死循环一直占用cpu
     time_now=time.strftime("%H:%M:%S",time.localtime(time.time()))  #时间戳转换为格式化时间便于比较
     if time_now==timing: #如果 时间=配置文件设定的时间 会执行任务
         logging.info("开始执行定时任务")
         delfile(file)

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

另外还有一个配置文件 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 # 打印日志的包 https://cuiqingcai.com/6080.html

你可能感兴趣的:(python,脚本语言)