You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python3中检查指定目录下的.zip.part文件以判断下载完成?

实现Selenium等待Firefox下载完成的解决方案

核心思路是通过定时扫描指定下载目录,判断是否存在.zip.part临时文件(Firefox下载未完成时的临时文件后缀),直到临时文件消失,即认为下载完成。同时建议添加超时机制,避免无限等待。

代码实现

import os
import time

def wait_for_download_completion(download_dir, timeout=300):
    """
    等待下载目录中的.zip.part文件消失,判断下载完成
    :param download_dir: 下载目录的路径字符串
    :param timeout: 最长等待时间(秒),默认5分钟
    """
    start_time = time.time()
    while True:
        # 遍历目录,检查是否存在.zip.part文件
        has_part_file = any(file.endswith('.zip.part') for file in os.listdir(download_dir))
        if not has_part_file:
            print("下载完成")
            break
        # 检查是否超时
        if time.time() - start_time > timeout:
            raise TimeoutError(f"等待下载超时,已超过{timeout}秒")
        # 每秒检查一次
        time.sleep(1)

# 示例调用
if __name__ == "__main__":
    # 替换为你的下载目录绝对路径
    DOWNLOAD_DIR = "/path/to/your/download/folder"
    # 这里放Selenium触发下载的代码,比如:
    # driver.find_element(By.ID, "download-btn").click()
    
    # 等待下载完成
    wait_for_download_completion(DOWNLOAD_DIR)

注意事项

  • 务必使用绝对路径作为download_dir,避免相对路径导致的目录识别错误
  • 若你的Firefox版本使用其他临时文件后缀,需对应修改判断条件中的后缀字符串
  • 超时时间可根据目标文件大小调整,大文件建议设置更长的超时值
  • 下载前建议清理目录中已存在的.zip.part文件,避免干扰判断逻辑

内容的提问来源于stack exchange,提问作者Eduardo Perez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 21:22:40