Python
こんなかんじ >>> 'detail.xml'.strip('.xml') 'detai'対策はこんな感じや >>> 'detail.xml'[:-len('.xml')] 'detail'こんな感じです。 >>> import os >>> os.path.splitext('detail.xml')[0] 'detail'で、これはバグなの?いや、仕様です。 Built-in Types …
python-selectというやつで、簡単にMacでpythonのバージョンを切り替えることができます。インストールはmacportsで。 $ sudo port python-select Pythonのバージョンを切り替えるとき。 $ sudo python_select python25 Password: Selecting version "python…
先日のPython Code Reading 06で学んだこと。 pythonで文字を連結をする場合は、文字列のプラス('+')で連結するより リストのappendを使った方が早いらしい。 で、試してみました。下がソース $ cat hoge.py #! /usr/bin/python import time class test1: de…
丸括弧を使用することで、長い文字列を改行して記述することができる。 カンマを使用しないところに注意。 >>> print ('寿限無、寿限無 ' '五劫の擦り切れ ' '海砂利水魚の ' '水行末 雲来末 風来末 ' '食う寝る処に住む処 ' 'やぶら小路の藪柑子 ' 'パイポ…
signalモジュールを使用すると、プロセスに送信されたシグナルを捕獲して任意の動作ができる。以下は、TERMシグナルをゲットして、文字列を表示した例。 $ cat waite_signal.py #! /usr/bin/python import signal def handler(signum, frame): print 'signal…
リストの比較は、要素ごとに比較される。一箇所でも、FalseがあるとFalseが返却されるっぽい。 リストの長さが違っても、OKっぽい。 >>> foo = [1, 2, 3] >>> bar = [1, 2, 4] >>> foo < bar True >>> foo = [1, 2, 3] >>> bar = [1, 3, 2] >>> foo < bar Tr…
「==」は値の比較。 「is」はオブジェクトの比較。 >>> foo = 'Boys Be Ambitious' >>> bar = 'Boys Be Ambitious' >>> foo == bar True >>> foo is bar False 短い文字列など、使用頻度の高いオブジェクトは使い回されるので、 「is」での比較は True とな…
vars()は、存在する変数の名前と値を辞書で返す。デバッグに使えそう。 >>> a = 123 >>> b = 456 >>> c = 789 >>> >>> >>> "%(a)s %(b)s" % vars() '123 456'
めもめも。Null文字(\0)は、C言語では、文字列の終端をあらわす。pythonでは、ただの文字。 >>> foo = "a\0b\0c\0" >>> foo 'a\x00b\x00c\x00' >>> len(foo) 6
pythonの文法の興味深いところをメモってみました。 リストのスライス >>> list = [1, 2, 3, 4, 5] >>> list[1] 2 >>> list[1:] [2, 3, 4, 5] >>> list[1:3] [2, 3] >>> list[:3] [1, 2, 3] >>> list[:] [1, 2, 3, 4, 5] >>> list[-1] 5 >>> list[-2] 4 >>> …
python の標準ライブラリに inspect という便利なものがあるので使ってみた。では、やってみます。 デバッガpdb でプログラムを読み込み、調査するモジュールの import 部分まで進めます。 $ /opt/local/lib/python2.5/pdb.py /Library/Python/2.5/site-pack…
Leopard で ipython をインストールしたら Leopard libedit detected と怒られた。 しかも、インデントが効かない!(python でそれはないだろう…)調べてみると、Mac OS X には readline のライブラリがないらしくipython がうまくうごかないらしい。また、…