日本だと普段扱わないので、忘れがちなタイムゾーンの処理をメモ書きです。ここでは例として、日本時間とアメリカ東海岸標準時の変換してみます。
‘python’ カテゴリーのアーカイブ
Pythonでタイムゾーンを扱うメモ
2010年8月10日 火曜日Pythonでいろんなバイナリファイルを覗いてみる
2010年8月1日 日曜日プログラマをしていると、ちょくちょくバイナリデータから情報を読みたくなりますね。そんな時は、ブツブツ言いながらバイナリエディタと睨めっこすることになるわけですが、これが結構大変なので、何とか楽にならないかなぁと思って探していると、hachoirというナイスなpythonモジュールが見つかりました。このモジュールを使うとバイナリデータをパースして様々なデータを取得できます。かなり多くのデータフォーマットに対応している(現時点で70種類)のが素晴らしいです。
Hello elisp World
2010年7月23日 金曜日以前にtrampのデバッグでちょろっとだけ触ったきりのelispですが、emacsユーザである以上いつまでも避けては通れなさそうです。とりあえず触りだけ覚えておくことにしました。ただ今のところelispの習得度がpythonやperl並みになることは考えにくいので、elispから外部コマンドを叩いて出力を受け取るというところまでをメモしておきます。
Hello AppleScript World
2010年7月3日 土曜日最近ではデザイナさんもAppleScriptを使いこなすようで、プログラマの自分がまったく理解してないのはどうかと言うことでかじってみる事にしました。まぁ日常的に使ってるのはTerminalとEmacsとYoruFukuroだけなので、個人的にはあんまり使う機会が無いかもなのですが、ひょっとするとXcode周辺で役に立つかもしれないという甘い期待を抱いています。
[メモ] Pythonのデコレータ
2010年5月30日 日曜日出てくる度に調べる割に、いつまで経っても覚えられなかったデコレータですが、今回こそ仕留める為にメモエントリーです。まずよく見かけるのは関数の時間を計測するという例ですね。僕はこの形だけを何となく覚えては忘れていました。
#!/usr/bin/python # -*- coding: utf-8 -*- import time # デコレータ定義 def time_func(func): def decorator(*args): start = time.time() ret = func() print '%s was executed, it took %s sec' % (func.func_name, time.time() - start) return ret return decorator # デコレータ適用 @time_func def test(): time.sleep(1) def main(): test() if __name__ == '__main__': main()
PythonでXMLの検証を行いたい件
2010年4月2日 金曜日自前で出力したsitemap.xmlがgoogleにはじかれたので、XMLスキーマの検証処理をPythonでもやりたいなぁと思って調べてみたら、簡単に出来ました。さすがPythonということでメモ書きです。
Pythonモジュールをダウンロード数でソートするPyPI Ranking作った
2010年4月2日 金曜日CPANのpython版であるPyPIを見ても中々どのモジュールを使えば良いのか解らないなぁと思ったので、ダウンロード数でソートするサイトを作ってみました。名前はPyPI Rankingです。ややアレな響きがありますが、致し方ありますまい!本当はDjango-nonrelかKayframeworkを使いたかったのですが、app-engine-patchの練習用に取得したアプリケーションIDを使い回す関係で、仕方なしにapp-engine-patchを使っています。
アクセスはこちらから。
GAE上ではジェネレータを保存出来なかった話
2010年3月30日 火曜日先日ジェネレータを一旦保存しておいて、途中から再実行するというエントリを書きました。これで何がしたかったかと言うと、この方法を使うとリクエストあたりの30秒制限があるGAEでも、割と綺麗に擬似的な無限ループが表現出来るだろうと言う事で実験していました。もっと言えばGAEでクローラを作りたかった訳ですが、残念ながら出来ませんでしたという話です。
Pythonのジェネレータを保存したいという話
2010年3月22日 月曜日Pythonでも所謂ジェネレータを使えます。無限数列を求めたりする例がよく紹介されていますね。
#!/usr/bin/python # -*- coding: utf-8 -*- def get_fib(): (a, b) = (0, 1) yield a yield b while True: (a, b) = (b, a + b) yield b def main(): fib = get_fib() for i in range(10): print fib.next() if __name__ == '__main__': main()
ジェネレータはnext()を呼ぶ度に新しい値を返す訳ですが、例えば5回next()を呼んでからジェネレータ自身を保存して置いて、後から6回目以降を呼び出したいというのが本エントリでの話です。
MySQLが出力するCSVファイルをPythonで読みたい件
2010年3月8日 月曜日ケースとしてはレアな気がしますが、MySQLのSELECT 〜 INTO OUTFILEで出力したCSVに対して、処理をしたい時があります。僕の場合はpythonでやるわけですが、MySQLが出力するCSVの形式がpythonデフォルトの物と違うようでハマったのでメモしておきます。
