‘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デフォルトの物と違うようでハマったのでメモしておきます。

(続きを読む…)