最近のPython
2008年10月8日
昨日と今日はPython漬け。
程良いネタをいくつか取得できたので、だらだら記事に起こす。
程良いネタをいくつか取得できたので、だらだら記事に起こす。
1. dictからkeyとvalueを取得しつつfor文でループ
for k, v in {"a":11, "b":22}.items(): print k, v # -> "a 11\nb 22"
てか、dict#items() で tupleへ変換するんすね。
2. HTML特殊文字のエスケープとアンエスケープ
標準だと xml.sax.saxutils.escape と xml.sax.saxutils.unescape を使うしか無いらしい。
→ サンプルコード
こういう表を全部変換してくれるようなライブラリは落ちてないかなー。
標準だと xml.sax.saxutils.escape と xml.sax.saxutils.unescape を使うしか無いらしい。
→ サンプルコード
こういう表を全部変換してくれるようなライブラリは落ちてないかなー。
3. クロージャについて大誤解してた件
JavaScriptみたいに、参照した変数がスコープ(この場合は関数)内に無い場合、自動的にスコープ外の変数にて解決しにいくよう。
→ サンプルコード(と、その中で呼んでいるモジュール)
何かが原因でこういう挙動じゃないと思ってたんだけど、それが思い出せない・・・。
JavaScriptみたいに、参照した変数がスコープ(この場合は関数)内に無い場合、自動的にスコープ外の変数にて解決しにいくよう。
→ サンプルコード(と、その中で呼んでいるモジュール)
何かが原因でこういう挙動じゃないと思ってたんだけど、それが思い出せない・・・。
4. BeautifulSoupを使ってGoogle検索結果をスクレイピング
出来はダメダメですが、サンプルのクラスを作った。
Pythonのサンプルというよりは、Google検索の仕様調査にどうぞ。
ちなみに、何時からかUser-Agentを送信しないとGoogle Searchが403を返すようになってた。
出来はダメダメですが、サンプルのクラスを作った。
Pythonのサンプルというよりは、Google検索の仕様調査にどうぞ。
ちなみに、何時からかUser-Agentを送信しないとGoogle Searchが403を返すようになってた。
5. TraceBackを手動で取得する
自分で例外を捕捉したときに、お便利なトレースバック情報群が吹っ飛んでしまっていたので調べた。
traceback.format_exc() を使ったら、一発で解決した。
→ サンプルコード
自分で例外を捕捉したときに、お便利なトレースバック情報群が吹っ飛んでしまっていたので調べた。
traceback.format_exc() を使ったら、一発で解決した。
→ サンプルコード
段々、Pythonの良い所(と、カッタルイ所)が見えてきました。
未だに思うのは、unicode型が非常にいいなぁ ということです。
未だに思うのは、unicode型が非常にいいなぁ ということです。