傀儡師の館.Python

傀儡師の館.Python

PR

×

Calendar

Keyword Search

▼キーワード検索

Archives

2026.07
2026.06
2026.05
2026.04
2026.03
2026.02
2026.01
2025.12
2025.11
2025.10

Profile

kugutsushi

kugutsushi

Free Space

設定されていません。
2003.02.28
XML
カテゴリ: ことばの処理
あぁ、今日で2月も終わりか。あいかわらずさえないな。時間ばかりどんどんたってしまう。生産性最悪最低が続くな・・・。

○ 記憶と再生その10 (Pythonで人工無能)

だらだらと 10 日目に突入してしまった。次回からは題名変えよう。昨日は Gadfly を動かしてみたが、実際にデータはどこへ行ったのだろうか。ということで、ファイルを開いてみる。C:\GadflyDB のディレクトリにデータを保存することにしたので、そこにどんなファイルができているかを見てみる。

そうすると、データベース名に gfd という拡張子がついたファイル TestDic.gfd と、テーブル名に grl という拡張子がついたファイル TEST.grl ができているのを確認できた。うむ、Gadfly の場合、指定したディレクトリにベタにデータベースのファイルが格納されることになるので、データベースごとにディレクトリを作ってやる必要があるのだな。Zope から Gadfly を使う場合も同じなので予想はしていたが。ということで、これは今後気をつけることにしよう。

で、ファイルをテキストエディタで開いてみると、バイナリ形式のファイルになっているようだ。TestDic.gfd には、CreateTable とか、ColumnDef とか、VARCHAR などといった文字が見えるので、このファイルに定義の類が入っていることが想像できる。TEST.grl の方も見てみると、やっぱりバイナリ形式のファイルになっていて、0001, test1, 0002, test2 といった文字が見つかることから、データはテーブルごとに、テーブル名のファイルに格納されると想像できる。もっとも Gadfly のソースコードでちゃんと確認すればいいのだけど、とりあえず面倒なので、まあそうなっているのだろうですませる。オープンソースのいいところは、ソースが見たいときはみればいいし、見たいと思わないときは見なくていいということだ(笑)。だいたい、よっぽど何か知りたいとか、改造したいとか思ったときぐらいしか実はソースは見ない。だから進歩ないんだよな(^^;;

とりあえず、昨日保存したデータを Gadfly を使ってプログラム上から確認してみることにする。


# Gadfly を使えるようにモジュールをインポートする。
import gadfly

## もう一度、同じディレクトリを指定。


# Gadfly への接続用にオブジェクトを作成し、
# connection という変数に代入する。
# 作成の時は、ここは gadfly.gadfly() としておいて
# その後、connection.startup("testdic", DBDataDir)
# と初期化してあげていたが、初期化が必要なのは1回だけ。
# 次回の接続からは次のように、gadfly のオブジェクトを
# 作成するときに、指定してやる。
# というか、ここでまた初期化してしまうとデータが消えて
# しまうので、よくよく注意すること。
# ここは fool proof になるように、既存のデータベースが
# あるときに初期化しようとしたらエラーを出すとか改造しようかな・・・



# カーソルオブジェクトを作成し、
# cursor という変数に代入する。
cursor = connection.cursor()

# test テーブルにあるデータをすべて選択する(select)
cursor.execute("select * from TEST")


# データをすべて取り出して(fetchall)、
# 変数 x に代入してすべての取り出した行に対して操作を行う。
for x in cursor.fetchall():
  # つまり、その行(x) を表示する。
  print x

という感じで、接続の仕方が違うだけで、あとは昨日と同じ。で、基本的な使い方がわかったので、いよいよ明日以降で、IPADIC を読み込んでみることにする。さて、Gadfly はどの程度のパフォーマンスを見せてくれるのだろうか、楽しみ。

PostgreSQL や MySQL とか使ってもいいのだけど、データベースのプロセス雨後かしっぱなしになるので、けっこうじゃまくさいのね。Gadfly だったら必要なときに必要なプログラムを起動したときだけ使うことができるから、まっとうに動くんであれば、Gadfly を使っちゃいたいわけ。インストールも簡単だし。あと、ちょっと興味ある機能もあるのだけど、それはそのうちに。うむ、そういえば、日本語の問題はどうかなとかあるな。一応、昨日ちょこっと動かした範囲では大丈夫だったけど。Zope では EUC の環境しか試したことないので、SJIS でちゃんと動くかどうか、実はよくわかっていない(^^;; 最悪、EUC-JP で動かして・・・、入出力で文字変換入れるから、無用に遅くなって嫌なのだけど。





お気に入りの記事を「いいね!」で応援しよう

Last updated  2006.09.12 20:10:17
コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: