銀月の符号

Python 使い見習いの日記・雑記

Python

cjholiday 更新 Python 3.4 対応

Python 3.4 対応しました。http://www.lazy-moon.jp/soft/index.html#cjholiday3系になることで、当然ながら C/API にも変更があったためそのままではビルドできず、ちょっとだけ手を入れました。 Py_InitModule3 関数などが無くなっていたりしまして。いや…

cjholiday 更新

jholiday.py が更新していたので cjholiday.py を追いつかせました。山の日関連。 Windows 用の Python 2.7 バイナリあります。Python C API を数年ぶりに触りました。 ctypes では不足の事態に追い込まれてこれを使う、なんて状況がそうそうあるはずもなく…

気がついたら2012年3月

放置すること1年以上。前書いていたときには、こんなにあいてしまうなんて予想だにせず。仕事急がしいし。でも全力で進みつづけた1年半。後悔はしていない。 Python で日数を数える ところで、何日あけちゃったんだ? Python はこんな調べ物にもつかえます。…

SQLAlchemy で Firebird その3

その0 準備 その1 テーブル定義関連 その2 接続関連 その3 クエリー関連(ORM 版)(いまここ) クエリー関連(ORM 版) 詳しくは Object Relational Tutorial に載っている。とりあえず DB 設定、テーブル設計、セッションの作成を。 from sqlalchemy impor…

SQLAlchemy で Firebird その2

その0 準備 その1 テーブル定義関連 その2 接続関連(いまここ) その3 クエリー関連(ORM 版) DB 接続まわり。 Engine Firebird を使用するには create_engine にて firebird+kinterbasdb を指定する。次のようになる。 engine = create_engine('firebird+…

SQLAlchemy で Firebird その1

その0 準備 その1 テーブル定義関連(いまここ) その2 接続関連 その3 クエリー関連(ORM 版) テーブル定義関連。まずは Object Relational Tutorial 。そのあとに読むべきは Mapper Configuration 、 Describing Databases with MetaData 、 Column and D…

SQLAlchemy で Firebird その0

その0 準備(いまここ) その1 テーブル定義関連 その2 接続関連 その3 クエリー関連(ORM 版) まる 1 日かかって Python, SQLAlchemy 経由で Firebird データベースが扱えるようになったけれど、なにを行ってきたのか忘れそうなので覚書を残す。記録をとっ…

Python レシピ更新 ハッシュの要素を挿入した順に取り出す

『118:ハッシュの要素を挿入した順に取り出す』を 「PEP 372 で順序つき辞書提案中」という内容から、「標準モジュール collections に OrderedDict があるよ」という内容に更新! collections.OrderedDict 、その実装 collections.OrderedDict の実装は「順…

Windows Python 2.7 でも MeCab 0.98

先週土曜 2010/8/7 に Windows で MeCab 0.98 の Python 2.7 バインディングをビルドしました。方法はやっぱり以前と変わりなしです。 ダウンロード 前々回 形態素解析エンジン MeCab 0.97 とその Python バインディングを MinGW でビルドする - 銀月の符号 …

絵文字にマッチする正規表現 Unicode 版

携帯電話の絵文字に触れる機会があったので、絵文字にマッチする正規表現を。絵文字は Unicode の外字領域にある。なので絵文字以外の外字が使われていないという前提があるならば、こうしてしまえばよい。 import re private_use = re.compile(ur'[\uE000-\…

setup.py install --home=~

python setup.py install --home=~と export PYTHONPATH=~/lib/pythonの合わせ技を思い出した。今度は忘れないようにメモ。テスト中の Python ライブラリを Python システム外に仮置きする簡単な方法のひとつ。 --home=~ と 8 文字タイプするだけでホームデ…

スミス数(すみすすう)

すみすさんの すみす.jp ドメイン取得祝いに、スミス数ライブラリを Python で書いたよ。*1 smithnumber.py version 1.1 (2010/3/24) smithnumber.py version 1.0.3 (2010/3/23) smithnumber.py version 1.0.2 (2010/3/23) smithnumber.py version 1.0.1 (20…

素因数分解

割り切れるかどうか試してみる、という力業の方法で。http://tsumuji.cocolog-nifty.com/tsumuji/2009/05/post-af3f.html を参考に作成。素因数分解は素数で割ってみることでできる。しかし、素数を求めることそのものに時間がかかるため単に 2 と 3 以上の…

素数列の生成3

素数列の生成2 - 銀月の符号 を微修正。3 以上の奇数の生成方法を itertools.islice(itertools.count(3), 0, None, 2) に変更。うちの実行環境 CPython 2.6.4 on Win32 ではこちらのほうが早かった。 CPython 全般でこちらのほうが早いと予想しているが Jyth…

N 個の組

L[0:2], L[1:3], L[2:4] …のような値を返すイテレータについてのメモ。ほぼ itertools ライブラリドキュメントのレシピ のまま。 L[0:2], L[1:3], L[2:4] … のようなイテレータ レシピにそのものが載っていたので転載。 from itertools import * def pairwis…

gettext モジュールメモ

Python gettext モジュールと戯れる。多言語対応 Python アプリを作るためのモジュール。しかし、オレには日本語以外まともに使える語がない罠。いや、日本語も怪しいけれど。 前提 次のコードを hello.py とする。実行すると「Hello」と挨拶するだけのスク…

md5sum の模倣

Python で md5sum 。車輪の再発明遊び、兼 C コードリーディング。参考にしたのは GNU coreutils-8.4.tar.gz の md5sum.c 。先日の「md5 のチェックを Python で - 銀月の符号」なんかと違って、ちゃんと各種オプションもある。 得られたもの optparse モジ…

md5 のチェックを Python で

md5sum なんて入ってないけれども Python (2.5 以上の 2系)ならある、という奇特なパソコンで役に立つかもしれないスクリプト。 md5sum -b spam.txt っぽい動作をする。 -t や -c 相当の動作はない。引数なし時や - 指定時に標準入力から読むという動作もな…

Python が好きな理由を思い出してみる

Python を好きになったきっかけってなんだったっけ? 好きに理由は要らないと思ってはいるものの、言葉にできないと人に伝えるときにすごく不便だと思ったのでまとめようとしてみる。インデント? ダックタイピング? itertools ? functools ? unittest ? 標…

素数列の生成2

あの話のエピローグには続きがあって「猿をぶら下げる代わりに紐を結ぶようにした、軽いから」というのがあるのだけれども、どういうことなのか昨晩やっとわかった。(なんのことかわかってなかったという自覚があったのだから、隠さずにそう書くべきだった…

素数列の生成

Python で Project Euler(http://projecteuler.net/ )(日本語訳は http://odz.sakura.ne.jp/projecteuler/)をとき始めた。現在 3 問目。素因数、素数、エラトステネスの篩、と調べていたら、次のたとえ話にたどり着いた。 雲梯を進む怠惰な猿たち 雲梯を…

csv モジュールメモ

ひさしぶりに csv モジュールを使ったのだけれど、うろおぼえで十数分無駄にしたので、簡単にメモしてみる。 csv モジュールとは CSV のようなテキストからデータを読み出したり、書き出したりできる便利モジュール。CSV って簡単そうに見えるけど、 'a,b,c'…

カウンタ変数? いやイテレータ

1週間以上ブログ更新しないのはけっこうあることだけど、1週間 Python コード書かなかったのはひさしぶり。ネタはないけれど、無理やり作って書いてみるか。昔の自分に今の自分が Python 教えるならば…といった設定にしてみる。 ジェネレータとか enumerate…

ファイル名に使えない、使わないほうがよい文字を置き換え

一月前ほどにつくったID3 タグを読むスクリプトを育てて、読むだけでなく、修正・作成もできるようにしていく過程で、ちょっと脱線して ID3 タグの曲名をもとにファイル名を修正するスクリプトができた(どちらもまだ未公開…手入れ中)。でも使えない文字関…

ファイルとファイルの排他的論理和を取って暗号化

『http://w3-info.net/post-419.html』を読んで。自分でもやってみたくなったので、やってみた。Python でファイルとある値、もしくはファイルとファイルの排他的論理和を求めて暗号化する手順について自分なりに考えてみる。 整数列 2 つから排他的論理和 …

『Google App Engine プログラミング入門』第2章「チュートリアル」の誤記をまとめてみた

『Google App Engineプログラミング入門』を通読した後、第2章「チュートリアル」のコードを実際に動かしてみようとしてみた。しかし動かない箇所が多数。 Python うろ覚えの人には発見が困難そうな誤りも。でも誤記が多いというだけで放り投げらてしまうの…

迷路問題(人材獲得作戦・4)を解いてみる

人材獲得作戦・4 試験問題ほか の問題を解いてみた。今日は 13 日、もうすでにいろんな人が解き終わっていて、反応鈍かった感は否めない。所要時間 40 分だった。最短経路に $ を書き込まなければならないので、ある地点へ「到達できたこと」に加えて「到達…

ID3v2 タグを自力で読んでみる

遅すぎる Python 書初め。もう 12 日だ。ID3 タグを扱うライブラリはいくつかあるけれども、それらを使わずに ID3v2 タグを読んでみた。パソコンさわりはじめた 10 年前の自分の感覚だと、 ID3 を読むのはえらい人が作ったツールをつかって行うものだ、とい…

PyGame 復習中

年末になったことだし(意味不明)、 PyGame の復習をするか。と、いうことで昨日からごそごそ作業中。とりあえず題材は 2D シューティングっぽい何か。弾避けゲームともいう。タイトル画面(っぽいの)とゲームオーバー画面(っぽいの)、直進する弾と自機…

Python レシピ更新、ファイルを16進ダンプする

「162:ファイルを16進ダンプする」を手直し。使うものが変わったので。 旧: 'Python'.encode('hex_codec') 新: binascii.hexlify('Python') hex_codec は内部で binascii.hexlify を用いている。そして hexlify 関数の使い方は簡単。ならば直接使ったほうが…