HiiHahWIKI - making some notes for... -
E71:e32dbmモジュールを使ってみた
をテンプレートにして作成
開始行:
*E71:e32dbmモジュールを使ってみた [#m55f3c4f]
PyS60には、e32dbとe32dbmという2種類のS60ネイティブのDBモ...
簡単に違いを説明すると
:e32db|データをSQLを使って操作
:e32dbm|データを辞書感覚で操作
・・・簡単すぎないか?笑
まあまあ、気が向いたら詳細に解説しようかと思います。
ちなみに、実際使ってみると、テキスト処理をしなくてもデー...
***e32dbmを使ってみる。 [#v514dbc5]
オーソドックスに、IntaractiveConsolから操作してみます。
まずは、モジュールをインポートします。
>>> import e32dbm
>>>
次に、モジュールの'''open'''関数を使って、DBをオープンし...
この関数の戻り値として、「'''e32dbm'''」オブジェクトが取...
この「'''e32dbm'''」オブジェクトが、辞書感覚で使えるDBと...
>>> cfg=e32dbm.open(u'e:\\testcfg.db','c')
Traceback (most recent call last):
File "<console>", line 1, in ?
File "c:\resource\e32dbm.py", line 258, in open
if flags[0] == 'c' and not os.path.exists(filename):
File "c:\resource\ntpath.py", line 142, in exists
st = os.stat(path)
UnicodeError: ASCII encoding error: ordinal not in range...
おっと、エラーが出てしました。
これは、字面的には間違ってないのですが、エンコーディング...
なんか、+JforS60を使っている場合は、色々都合がよろしくな...
さてさて、標準のFEPに変更したあともう一度やってみるとエラ...
>>> cfg = e32dbm.open(u'e:\\testcfg.db','c')
>>>
openメソッドの引数は以下の通り。
:第一引数|e32dbmファイルのフルパス(ユニコード指定)
:第二引数|フラグ指定(省略可)fを指定すると、非同期ファイ...
:第三引数|モード指定(省略可)指定しない場合(デフォルト...
::r|読み取り専用モードでファイルをオープン
::w|読み書きモードでファイルをオープン
::c|読み書きモードでファイルをオープン(ファイルがない場...
::n|空のDBを作成し、読み書きモードでオープン
このオブジェクトを見てみましょう。
>>> dir(cfg)
['__del__', '__delitem__', '__doc__', '__getitem__', '__...
'__len__', '__module__', '__setitem__', '_dbclear', '_d...
'_dbhaskey', '_dbset', '_execute', '_query', 'clear', 'c...
'flags', 'get', 'has_key', 'items', 'iteritems', 'iterke...
'keys', 'pending_updates', 'pop', 'popitem', 'reorganize...
'sync', 'update', 'values']
へー、確かに、辞書と同じものもある。
ではでは、要素を追加してみましょう。
>>> cfg.items()
[]
>>> cfg['a']='aaa'
>>>
>>> cfg.items()
[('a', 'aaa')]
>>> cfg.get('a')
'aaa'
ふむふむ、確かに出来てる。
じゃあ、一回コンソールを閉じて、もう一度ファイルを開いて...
Python 2.2.2 (#0, Nov 7 2008, 14:24:30) [C] on symbian_...
"credits" or "license" for more information.
(InteractiveConsole)
>>> import e32dbm
>>>
>>> cfg = e32dbm.open(u'e:\\testcfg.db','w')
>>>
>>> cfg.items()
[('a', 'aaa')]
>>>
うむ、ちゃんと書き込まれてる!
終了行:
*E71:e32dbmモジュールを使ってみた [#m55f3c4f]
PyS60には、e32dbとe32dbmという2種類のS60ネイティブのDBモ...
簡単に違いを説明すると
:e32db|データをSQLを使って操作
:e32dbm|データを辞書感覚で操作
・・・簡単すぎないか?笑
まあまあ、気が向いたら詳細に解説しようかと思います。
ちなみに、実際使ってみると、テキスト処理をしなくてもデー...
***e32dbmを使ってみる。 [#v514dbc5]
オーソドックスに、IntaractiveConsolから操作してみます。
まずは、モジュールをインポートします。
>>> import e32dbm
>>>
次に、モジュールの'''open'''関数を使って、DBをオープンし...
この関数の戻り値として、「'''e32dbm'''」オブジェクトが取...
この「'''e32dbm'''」オブジェクトが、辞書感覚で使えるDBと...
>>> cfg=e32dbm.open(u'e:\\testcfg.db','c')
Traceback (most recent call last):
File "<console>", line 1, in ?
File "c:\resource\e32dbm.py", line 258, in open
if flags[0] == 'c' and not os.path.exists(filename):
File "c:\resource\ntpath.py", line 142, in exists
st = os.stat(path)
UnicodeError: ASCII encoding error: ordinal not in range...
おっと、エラーが出てしました。
これは、字面的には間違ってないのですが、エンコーディング...
なんか、+JforS60を使っている場合は、色々都合がよろしくな...
さてさて、標準のFEPに変更したあともう一度やってみるとエラ...
>>> cfg = e32dbm.open(u'e:\\testcfg.db','c')
>>>
openメソッドの引数は以下の通り。
:第一引数|e32dbmファイルのフルパス(ユニコード指定)
:第二引数|フラグ指定(省略可)fを指定すると、非同期ファイ...
:第三引数|モード指定(省略可)指定しない場合(デフォルト...
::r|読み取り専用モードでファイルをオープン
::w|読み書きモードでファイルをオープン
::c|読み書きモードでファイルをオープン(ファイルがない場...
::n|空のDBを作成し、読み書きモードでオープン
このオブジェクトを見てみましょう。
>>> dir(cfg)
['__del__', '__delitem__', '__doc__', '__getitem__', '__...
'__len__', '__module__', '__setitem__', '_dbclear', '_d...
'_dbhaskey', '_dbset', '_execute', '_query', 'clear', 'c...
'flags', 'get', 'has_key', 'items', 'iteritems', 'iterke...
'keys', 'pending_updates', 'pop', 'popitem', 'reorganize...
'sync', 'update', 'values']
へー、確かに、辞書と同じものもある。
ではでは、要素を追加してみましょう。
>>> cfg.items()
[]
>>> cfg['a']='aaa'
>>>
>>> cfg.items()
[('a', 'aaa')]
>>> cfg.get('a')
'aaa'
ふむふむ、確かに出来てる。
じゃあ、一回コンソールを閉じて、もう一度ファイルを開いて...
Python 2.2.2 (#0, Nov 7 2008, 14:24:30) [C] on symbian_...
"credits" or "license" for more information.
(InteractiveConsole)
>>> import e32dbm
>>>
>>> cfg = e32dbm.open(u'e:\\testcfg.db','w')
>>>
>>> cfg.items()
[('a', 'aaa')]
>>>
うむ、ちゃんと書き込まれてる!
ページ名: