get_weather.py
get_weather_v3.2.py
get_weather_v3.3.py
get_weather_v3.4.py
get_weather_v3.5.py
get_weather_v3.5.3.py
get_weather_v3.5.4.py
このプログラムは非商用にかぎり自由にご利用ください。、一応著作権は放棄しておりません。
python 2.2* 2.3* で確認しております。
V0.3.5.4に変更します。 6/25 14:20
天気を日本語表記にしました。もし英語の時は、予想してない天気ということでそのとき追加します。
V0.3.5.3に変更します。 6/14 15:51
いやはや、今日の天気、condition がない場合、weatherData[key, 値] がエラーになります。
weather データーをつくるとき、キーと値の設定をしますが、キーしか設定できていないことが起きるわけです。値がない場合は "--" というデーターを入れました。 src の 3.5.3 のコメントを見て下さい。
V0.3.5に変更します。 3/12 23:15
reduce 、filter等々 を使い、正規表現をみなおし少しコンパクトにしました。
V0.3.4に変更します。 3/10 18:40
calendar モジュールをいれ
今日の曜日を日本語でいれ、表示も 2004/3/10 のようにしました。
明日の天気が時間によって今日になっていたのを、曜日を確認し翌日になるようにしました。
V0.3.3に変更します。 3/8 17:40
正規表現を書き直しました。 パターンの書き方におおきな誤りがありました。raw string で書かないといけないところを、そのまま書いてました。きっと \s|. のように OR でつかっていたので偶然動いただけです。
v0.3.2 に変更します。
while ループを、for in に変更しました。
re.compile を使い、正規表現が複雑そうなものはループの外で計算させるようにしました。
string.find(hoge, patern) を hoge.find(patern) に変更しました。
/font>
設置する場合は、拡張子を cgi にし テンプレート Main Index に次のように書いていただければいいかと思います。
<div class="weather"&g
t
<iframe src=" http://heididorf.sakura.ne.jp/cgi-bin/get_weather.cgi" frameborder=0 width=220
height=500 scrolling=no title="お天気予報"></iframe>
</div>
今回、最初、何行目のある文字の後ろにこのデータがあると決めうちで書いてみましたが、時間によってある項目が減ったり、増えたりして、また、都市によってデーターが存在する行が変化するため汎用性が大変低くなりました。そこで、アイディアを練り直し、データーをリスト、ディクショナリを使ってはまとめるようにしました。
なにぶん、通常のプログラムはすべて awk で、簡単なcgi は AWK で書いてしまいますので、python は超初心者です。マニュアルをみながら書いたのですが、python の日本語情報は存在するのですがやはり難解な部分が多く、テストを繰り返してしたいことを、試行錯誤しながら書いています。
python は、変数の宣言はいらないのですが、いきなりリスト、ディクショナリーに新規追加ができないようで、若干とまどいました。また、AWK は c ライクな書き方をするのですが、python はかっこを使わないということ、ループ、if などには : を使うなど、AWK ユーザーにはやはり頭がたこになりますね。ただし、プログラムは、覚えれば書きやすい、読みやすうと思います。
最後に get_weather_v3.py は、むちゃくちゃ計算が遅いです。なぜ? <--- 正規表現の使い方がむちゃくちゃだから?