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)