Jupyter AI

21 定期自动化任务示例

📅 发表日期: 2024年8月11日

分类: 🐍Python 应用自动化

👁️阅读: --

在上一篇教程中,我们讨论了如何使用Python进行批量处理数据的自动化操作。今天,我们将继续探讨另一个实际案例:如何设置定期自动化任务。这个任务涉及到使用Python定时执行某些操作,比如定期读取数据、生成报告或发送邮件等。这种定期自动化任务在日常工作中具有重要意义,可以极大提升工作效率,减轻人工操作负担。

案例背景

假设我们需要定期从一个API获取天气数据,并将这些数据记录到一个CSV文件中。我们希望每天都能自动执行这个任务,而不需要手动干预。我们将使用schedule库来实现这个需求。

实现步骤

1. 安装必要的库

首先,我们需要安装requestsschedule库。打开命令行,输入以下命令:

pip install requests schedule pandas

2. 编写收集天气数据的Python脚本

下面是一个简单的Python脚本,用于从API获取天气数据并保存到CSV文件中。我们使用requests库来获取数据,并用pandas来处理和保存数据。

import requests
import pandas as pd
from datetime import datetime

def fetch_weather_data(city):
    # 替换为你的API密钥
    api_key = 'YOUR_API_KEY'
    url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric'
    response = requests.get(url)
    data = response.json()
    
    if response.status_code == 200:
        weather_data = {
            'date': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
            'city': data['name'],
            'temperature': data['main']['temp'],
            'humidity': data['main']['humidity'],
            'weather': data['weather'][0]['description']
        }
        return weather_data
    else:
        print("Error fetching data:", data)
        return None

def save_to_csv(data, filename='weather_data.csv'):
    df = pd.DataFrame(data)
    df.to_csv(filename, mode='a', header=not pd.io.common.file_exists(filename), index=False)

if __name__ == "__main__":
    city = 'Beijing'  # 你想要获取天气数据的城市
    weather_data = fetch_weather_data(city)
    
    if weather_data:
        save_to_csv([weather_data])

3. 设置定期任务

接下来,我们将使用schedule库来安排每日执行上述脚本。我们可以在同一个脚本中添加安排任务的功能。

import schedule
import time

def job():
    city = 'Beijing'
    weather_data = fetch_weather_data(city)
    
    if weather_data:
        save_to_csv([weather_data])
        print(f"Saved weather data for {city}.")

# 安排每天上午8点执行
schedule.every().day.at("08:00").do(job)

if __name__ == "__main__":
    while True:
        schedule.run_pending()
        time.sleep(60)  # 每分钟检查一次任务

4. 运行脚本

将上述代码保存为weather_scheduler.py,然后在命令行中运行:

python weather_scheduler.py

这将使得脚本在后台运行,每天早上8点自动获取天气数据并保存到CSV文件中。

总结

在这一节中,我们实现了一个定期的自动化任务,通过Python定时合并 API 数据并存储到文件中。这种自动化流程不仅减少了人工操作的需要,还能确保我们定期更新数据,为后续的工作提供支持。

在下一篇中,我们将对整个系列教程进行总结和展望,回顾我们所学的内容,并讨论如何将这些知识应用于实际工作中。希望大家能在使用Python实现自动化操作的过程中,持续学习和实践,提升自己的技术能力。