# 如何用基于Python的命令行查天氣預報
在數字化時代,通過命令行工具快速獲取天氣預報不僅能提升效率,還能為開發者提供靈活的集成方案。本文將介紹如何用Python構建一個簡單的命令行天氣預報查詢工具。
## 一、準備工作
### 1. 注冊天氣API
推薦使用免費天氣API服務:
- [OpenWeatherMap](https://openweathermap.org/)(免費版支持每分鐘60次請求)
- [和風天氣](https://dev.qweather.com/)(中文友好)
注冊后獲取API Key(示例以OpenWeatherMap為例)。
### 2. 安裝依賴庫
```bash
pip install requests python-dotenv
API_KEY=your_openweathermap_api_key
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%
狀況: 晴
forecast
端點matplotlib
繪制溫度曲線通過這個不到100行的Python腳本,我們實現了一個實用的命令行天氣工具。開發者可以進一步將其打包為可執行文件(如用PyInstaller),或集成到其他自動化流程中。
提示:完整代碼已上傳至GitHub示例倉庫(示例鏈接) “`
這篇文章包含: - 清晰的步驟分解 - 可直接運行的代碼示例 - 實用的參數化設計 - 安全注意事項 - 擴展建議 符合技術文檔的markdown規范,代碼塊和段落層次分明。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。