いっぽんの猟銃のむこうに (DAIZOじいさんとGun)

ヌルめの技術メモとか。フリーランスやってます (http://acez.jp/)

Python

Pythonで文字列が16進数かどうかを判別する

普通にやるなら def _is_hex(val): try: int(val, 16) return True except ValueError, e: return False とか書くんですけど、まあ冗長っていえば冗長ですよね。どうしても、なんとなく例外処理とか書きたくない場合は、 a = 'FF00FF' import string set(a).…

Pythonで相対URLとかうさんくさいのを綺麗にする

urlnormというライブラリを使うと良いっぽい。以下公式サイトからそのままですけど、相対参照とかうさんくさいドメインとかを適宜綺麗にパースしてくれるみたいです。素敵。 >>> import urlnorm >>> urlnorm.norm("http://xn--q-bga.com./u/u/../%72/l/") u'…

Homebrewで入れたPythonにvirtualenvwrapperが入らない

.bash_profileにvirtualenvwrapper.shを読ませるところでエラーが出て、export VIRTUALENVWRAPPER_PYTHON=`which python`を指定してるし、きちんと/usr/local/のbrewで入れたpythonを見てるのになんでだろう……と思ってしばしハマったんですが、どうもpip入れ…

6分割コンプガチャの出現確率はおおむね混一色くらい

いま話題のコンプガチャの確率を数学的に証明してくださったエントリを見て。(http://doryokujin.hatenablog.jp/entry/2012/05/09/034209)うーん……正直数学ガール見て実際お手上げめいた似非理系プログラマの僕には数式みるだけで目眩が……というわけでシミュ…

cx_Oracleをcygwin上のPython(2.6)に入れる

ベンチマーク比べするためだけにWin上で動かしたいなーなんて場合はとりあえずCygwinなんですけど、この場合setup.pyスクリプトに手でパッチ当てないとうまく動いてくれません。詳細は以下のとおり。 http://permalink.gmane.org/gmane.comp.python.db.cx-or…

cx_Oracleのインストール(pip編)

最近だとvirtualenv切ってPIPで入れるのがお作法的に綺麗な感じがするので、その手順をメモ。 ■前提条件 ・Pythonの比較的新しめな奴(2.5以降系) ・Oracle Instant Clinetが導入され、sqlplusでの接続確認済 ・Oracle環境変数等設定済 [oracle@oracle11g ~]$…

ファイル中の特定文字列数をカウントする

いろいろやり方はあるけどPythonでやるのが楽ちん。 文字列読み込んでstr.count('hoge')で一発。 以下、改行文字として[#@@@@#]という頭の悪い文字列を使ったCSVデータの改行文字数=列数をカウントするサンプル。count_line.py #!/usr/bin/python import sy…

SystemError: Objects/stringobject.c:3565: bad argument to internal function

gomiなのでPythonでメモリ上にがっつり乗っけるスクリプト書いたら見慣れないエラーで落ちた。 test.py ---- str = "" while True: str += "a" * 1024 * 1024 print len(str) ----これをCentOS 5.6(64bit)上のPython 2.4.3とかで流すと 2144337920 214538649…

カイジがチンチロリンで目無しを出して3000ペリカ失う確率をざっくりと求める

カイジ(第二期)面白いですよね。でも途中から何故か「そもそも、そんなに目って出るもんかしら?」ってことが気になりだしてしまい、それどころじゃありませんでした。数学的に考えると、一回振った場合は確率的に 6/6 * 5/6 * 4/6 = 20 / 36 = 0.555、つま…

listとかtupleとかdictとかをprintすると文字化けする

こんな感じで普通にやると化ける。 >>> s = ['あ', 'い', 'う'] >>> print s ['\xe3\x81\x82', '\xe3\x81\x84', '\xe3\x81\x86'] Python3000にすれば治るよ!とか言われても OSにそのまま入ってる奴つかいたいし……3000とかあやしすぎるし……そんなときは >>> …

CentOSへのMySQLdbの最低限の入れ方

最新版を最低限の手順で入れたい時に。 ネット上では色々入れ方があって混乱するのでまとめておく。・easy_install導入 # wget http://peak.telecommunity.com/dist/ez_setup.py # python ez_setup.py ・依存ライブラリ導入 # yum -y install mysql-devel py…

cx_Oracleのインストール

Python用Oracleコネクタのインストール方法です。いまんとこ最新の5.1で確認しました。Oracleがインストールされているのと同じサーバーに入れることを前提とします。そうでない場合はOracle instantclientとか入れればいいみたい。その場合の手順は必要にな…