seed をやっている日本人がいた、あぁ日本語で読めるのは素晴らしい。
とはいえ海外でもあまり盛り上がっていないわけですが。
前ページを見て笑った、日本語で探すとそうなってしまうんだよ。
なるほど、Gio でディレクトリ内容列挙したい場合はこうするのか。
引数は必ずしも JSON でなくてもいいのか?又解らないことが増えた。
while は for in 文でいいんじゃない?と思ったが…
そういえば JavaScript ではオブジェクトメソッドの列挙になるのよね。
ま、私は PyGI でヤルんですけど。
ということで $HOME のファイルを列挙するサンプルコード。
“standard::name” だと byte になるので “standard::display-name” にした。
#!/usr/bin/env python #-*- coding:utf-8 -*- import os from gi.repository import Gio # set Directory Name d = Gio.file_new_for_path(os.path.expanduser("~")); # Get GFileEnumerator enum = d.enumerate_children( Gio.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME, Gio.FileQueryInfoFlags.NONE, None ) for info in enum: # info: GFileInfo print info.get_display_name()
Python だと当然のように for in 文でイケるようだ。
seed は JavaScript の仕様そのままなので面倒かも。
逆に enumerate_children 等は引数を全部指定する必要がある。
seed は引数が曖昧でいいところもやっぱり JavaScript なのね。
ついでに Gio もう一つ、海外。
GIO tutorial: Stream IO ? Johannes Sasongko’s blog
#!/usr/bin/env python #-*- coding:utf-8 -*- import os from gi.repository import Gio # set File Name fn = os.path.expanduser("~/.gtk-bookmarks") # Create GLocalFile f = Gio.File.new_for_path(fn) # load_contents result, contents, length = f.load_contents(None) if result: print contents
で .gtk-bookmarks 内容が print される。
PyGtk を PyGI に書き換えしたのだが引数も戻り値も微妙に違った。
とにかくファイルの一騎読み込みはこうすればいいみたい。
でも stream のほうは PyGI では上手く行かない。
何か手段があるのだろうけど今はまだ Gio 勉強中。
# おまけ
fedora 16 アップデート通知に Gedit があった。
やっとドラッグアンドドロップ編集で落ちるのを修正してくれた!
ついやってしまっていったい何度書いたコードを無駄にしたことか。