如何在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
相关产品推荐
相关产品推荐

