PyOne は、初心者にはお勧めできない。 ワンライナーは読みにくいし意図しないミスも入りやすくなるし、 間違ってもこんなものを再利用しようなどと考えてはいけません。 これは Perl に毒された人専用です。
pyone [-d] [-i modules] [-f modules] script args ...
-d
-i modules
import modules
' をスクリプトの先頭に追加する。
-f modules
from modules import *
' をスクリプトの先頭に追加する。
;
A B C
{ ... }
A: B C
EL{ ... }
ループ中では以下の変数が定義されている:
L
: 現在の行番号。
S
: 改行をふくんだ現在行のテキスト。
s
: strip したもの。
F[]
: 変数 DELIM で split したフィールド。
I[]
: 各フィールド値を int に変換したもの。
正確には、これは以下のようにコードを展開します:
L = -1 while 1: S = getnextline(args) if not S: break L = L + 1 s = string.strip(S) F = string.split(s, DELIM) I = map(toint, F) (... ここにコードが入る ...)
DELIM
args[]
$ pyone 2+3*5.6 $ pyone -f cdb 'd=init("hoge.cdb");EL{if d.get(F[0]): print s}' testfiles $ wget -q -O- http://slashdot.org/ | \ pyone -f sgmllib 't=[""];class p(SGMLParser){def handle_data(s,x){global t;t[-1]+=x;} \ def start_td(s,x){t.append("")} def end_td(s){print t[-1];del(t[-1])}} \ x=p(); EL{x.feed(s)}'
Yusuke Shinyama (yusuke at cs . nyu . edu)