如何用基于Python的命令行查天气预报

发布时间:2021-12-04 19:13:15 作者:柒染
来源:亿速云 阅读:201
# 如何用基于Python的命令行查天气预报

在数字化时代,通过命令行工具快速获取天气预报不仅能提升效率,还能为开发者提供灵活的集成方案。本文将介绍如何用Python构建一个简单的命令行天气预报查询工具。

## 一、准备工作

### 1. 注册天气API
推荐使用免费天气API服务:
- [OpenWeatherMap](https://openweathermap.org/)(免费版支持每分钟60次请求)
- [和风天气](https://dev.qweather.com/)(中文友好)

注册后获取API Key(示例以OpenWeatherMap为例)。

### 2. 安装依赖库
```bash
pip install requests python-dotenv

二、代码实现

1. 创建配置文件(.env)

API_KEY=your_openweathermap_api_key

2. 编写核心代码(weather.py)

import os
import argparse
import requests
from dotenv import load_dotenv

load_dotenv()

def get_weather(city, units='metric'):
    API_KEY = os.getenv('API_KEY')
    base_url = "http://api.openweathermap.org/data/2.5/weather"
    
    params = {
        'q': city,
        'appid': API_KEY,
        'units': units
    }
    
    try:
        response = requests.get(base_url, params=params)
        data = response.json()
        
        if response.status_code == 200:
            return {
                'city': data['name'],
                'temp': data['main']['temp'],
                'humidity': data['main']['humidity'],
                'description': data['weather'][0]['description']
            }
        else:
            return {'error': data['message']}
    except Exception as e:
        return {'error': str(e)}

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='查询城市天气')
    parser.add_argument('city', help='城市名称(如:Beijing)')
    parser.add_argument('-u', '--units', choices=['metric', 'imperial'], 
                        default='metric', help='温度单位(metric=摄氏,imperial=华氏)')
    
    args = parser.parse_args()
    weather = get_weather(args.city, args.units)
    
    if 'error' in weather:
        print(f"错误: {weather['error']}")
    else:
        print(f"""
        {weather['city']}天气:
        温度: {weather['temp']}{'°C' if args.units == 'metric' else '°F'}
        湿度: {weather['humidity']}%
        状况: {weather['description']}
        """)

三、使用说明

基础查询

python weather.py Beijing

指定温度单位

python weather.py NewYork --units imperial

输出示例

        Beijing天气:
        温度: 25°C
        湿度: 60%
        状况: 晴

四、进阶优化

  1. 多日预报:改用forecast端点
  2. 地理编码:支持坐标查询
  3. 缓存机制:减少API调用
  4. 可视化:使用matplotlib绘制温度曲线

五、注意事项

  1. 免费API有调用频率限制
  2. 敏感信息不要硬编码在代码中
  3. 处理网络请求超时情况

通过这个不到100行的Python脚本,我们实现了一个实用的命令行天气工具。开发者可以进一步将其打包为可执行文件(如用PyInstaller),或集成到其他自动化流程中。

提示:完整代码已上传至GitHub示例仓库(示例链接) “`

这篇文章包含: - 清晰的步骤分解 - 可直接运行的代码示例 - 实用的参数化设计 - 安全注意事项 - 扩展建议 符合技术文档的markdown规范,代码块和段落层次分明。

推荐阅读:
  1. Python定时发送天气预报邮件
  2. python如入到指定目录下的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:Python爬虫的起点是什么

下一篇:如何用Python玩转一笔画完小程序游戏

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》