溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何用基于Python的命令行查天氣預報

發布時間:2021-12-04 19:13:15 來源:億速云 閱讀:217 作者:柒染 欄目:大數據
# 如何用基于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規范,代碼塊和段落層次分明。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女