在自动化下载过程中,文件监控和日志记录是确保下载过程顺利进行、及时发现问题并进行故障排查的重要环节。以下是一些处理文件监控和日志记录的常见方法和步骤:
以下是一个简单的示例,演示如何在自动化下载中实现文件监控和日志记录:
python复制import os
import requests
import logging
import hashlib
from time import time
# 设置日志配置
logging.basicConfig(filename='download.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
def calculate_md5(file_path):
"""计算文件的 MD5 值"""
hash_md5 = hashlib.md5()
with open(file_path, "rb") as f:
for chunk in iter(lambda: f.read(4096), b""):
hash_md5.update(chunk)
return hash_md5.hexdigest()
def download_file(url, local_filename):
"""下载文件并记录日志"""
try:
logging.info(f"开始下载: {url}")
response = requests.get(url, stream=True)
response.raise_for_status() # 检查请求是否成功
with open(local_filename, 'wb') as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
logging.info(f"下载完成: {local_filename}")
# 校验文件完整性
md5_hash = calculate_md5(local_filename)
logging.info(f"文件 MD5: {md5_hash}")
except Exception as e:
logging.error(f"下载失败: {url} - 错误: {str(e)}")
if __name__ == "__main__":
url = "http://example.com/largefile.zip"
local_filename = "largefile.zip"
download_file(url, local_filename)