这个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_interval
和timeout
参数的设置,以平衡性能和响应速度。