简单代码轻松监控下载进度:Python实时监测文件夹下载状态函数,自动识别指定文件后缀格式下载,完成下载后自动退出等待

这个Python函数是为了提高工作效率而设计的,它能够自动监控指定文件夹内的下载进度。通过定期检查文件夹,脚本识别新下载的文件,并在设定的超时时间内反馈结果。支持多种文件类型,适用于需要实时监控文件下载状态的场景,减少了人工检查的时间和精力,极大地提升了任务处理的效率。

请各位有收获的看官请记得回来关注并点赞哦,谢谢 

本文包含完整代码和使用说明文档

主体代码:

import os
import time

def is_download_complete(folder_path, extensions, check_interval=5, timeout=300):
    """
    检查指定文件夹中特定后缀的文件是否下载完成。

    :param folder_path: str, 需要监控的文件夹路径。
    :param extensions: list, 需要监控的文件后缀列表,例如 ['.rar', '.zip', '.ppt', '.pptx']。
    :param check_interval: int, 检查文件夹的时间间隔(秒)。
    :param timeout: int, 超时时间,如果在这段时间内没有新文件下载,则视为下载失败(秒)。
    :return: str, 返回"成功"如果有符合条件的新文件下载,否则返回"失败"。
    """

    # 获取初始时的文件列表
    initial_files = set(os.listdir(folder_path))
    start_time = time.time()

    while True:
        current_time = time.time()
        current_files = set(os.listdir(folder_path))
        new_files = current_files - initial_files

        # 检查新文件是否符合条件
        if any(filename.endswith(tuple(extensions)) for filename in new_files):
            return list(new_files)[0]  # 发现符合条件的新文件

        # 检查是否超时
        if current_time - start_time > timeout:
            return "失败"  # 在超时时间内未检测到新文件

        time.sleep(check_interval)  # 等待后再次检查

# 使用示例
download_folder = r'C:\Users\Administrator\Downloads' # 替换为你的下载文件夹路径
file_extensions = ['.rar', '.zip', '.ppt', '.pptx']
result = is_download_complete(download_folder, file_extensions)
print(result)

说明文档:is_download_complete 函数

is_download_complete 是一个Python函数,用于监控指定文件夹中特定文件类型的下载完成情况。此函数适用于需要确认文件是否已经成功下载到本地的场景。

功能

该函数通过定期检查指定文件夹,来确定是否有新的指定类型文件被下载。如果在设定的超时时间内发现了新文件,函数将返回新文件的名称;如果超时未发现新文件,则返回“失败”。

参数说明

  • folder_path (str): 需要监控的文件夹路径。例如 r'C:\Users\Administrator\Downloads'
  • extensions (list): 需要监控的文件后缀列表。它是一个字符串列表,每个字符串代表一种文件类型的后缀,例如 ['.rar', '.zip', '.ppt', '.pptx']
  • check_interval (int, 可选): 检查文件夹的时间间隔(秒)。默认为5秒。
  • timeout (int, 可选): 超时时间(秒)。如果在这段时间内没有新文件下载,则视为下载失败。默认为300秒。

返回值

  • 如果函数在超时时间内检测到了新的符合条件的文件,它会返回该文件的名称。
  • 如果在超时时间内未检测到新文件,函数返回字符串 "失败"。

使用示例

以下是如何使用 is_download_complete 函数的一个示例:

download_folder = r'C:\Users\Administrator\Downloads' # 替换为你的下载文件夹路径
file_extensions = ['.rar', '.zip', '.ppt', '.pptx']
result = is_download_complete(download_folder, file_extensions)
print(result)

在这个例子中,函数将监控 C:\Users\Administrator\Downloads 文件夹,检查是否有以 .rar, .zip, .ppt, 或 .pptx 结尾的新文件被下载。

注意事项

  • 确保传递给函数的文件夹路径是正确的,并且你的程序有足够的权限访问该路径。
  • 文件后缀名应正确,否则函数可能无法正确识别文件类型。
  • 在使用此函数监控下载时,需要注意 check_intervaltimeout 参数的设置,以平衡性能和响应速度。

猜你喜欢

转载自blog.csdn.net/dianqiyisheng/article/details/135896767