检查文件夹下指定类型文件,并返回指定类型的最新上传文件 Python实现

在工作中要实现一个检查文件后缀格式,并返回指定文件后缀的最新上传的文件功能的一个Python函数。主要通过os.path.getmtime(文件)来确定该文件的最后修改时间,返回值为浮点数,表示该文件到所属文件夹的时间间隔。

我们要实现的功能是:

1、找出文件夹中指定的后缀文件

2、当这个文件夹里有多个同后缀的文件时,默认文件未修改的时间起始值为0,当某文件file的最后修改时间大于默认的0时,可以认为该文件较0起始值修改过的文件,对于多个文件进行一个for循环的比较,就可以找出最新的那个文件并返回。

3、a.如果只存在png文件,就执行png文件操作 b.如果没有就不执行操作 c.当有MP4文件时,不管有误png文件,优先执行MP4文件

功能2实现:

def has_single_file_type(directory_path, extensions):
    """
    检查目录下是否有无指定类型的文件。
    返回:文件夹中最新的指定后缀文件
    """
    latest_file = False
    latest_mod_time = 0 
    
    for ext in extensions:
        files = glob.glob(os.path.join(directory_path, f'*{ext}'))
        for file in files:
            mod_time = os.path.getmtime(file) # 文件最后修改时间
            if mod_time > latest_mod_time:
                latest_mod_time = mod_time
                latest_file = file               
    return latest_file

编写测试文件:

如果输入的是png,返回“正在操作png”,对于MP4文件也一样

def process_png(file_path):
    print(f"处理PNG文件: {file_path}")

def process_mp4(file_path):
    print(f"处理MP4文件: {file_path}")

整体实现并接入测试:

def process_directory(directory_path):
    """
    根据目录内容决定如何处理不同后缀文件。
    """
    png_path = has_single_file_type(directory_path, '.png')
    mp4_path = has_single_file_type(directory_path, '.mp4')

    if png_path and not mp4_path:
        # 只有一张PNG图片
        process_png(png_path)
    elif mp4_path:
        # 无论是否有PNG,只要有MP4就处理最新上传的MP4文件
        process_mp4(mp4_path)
    else:
        print("目录中没有符合条件的文件,不执行操作。")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值