gae アプリ 開発メモ

Google App Engine アプリの開発メモ / 言語: python, javascript / ビギナー

ファイルの読み込みと for~in

当たり前といえば、当たり前なんだけど。

ファイルの読み込みで for~in を途中で break して、また同じファイルに for~in すると続きを読むことができる。

with open(filename, 'r') as source:
    for line in source:
        out.write(line)  # 1 行目を出力
        break;

    for line in source:
        out.write(line)  # 2 行目以降を出力

ジェネレータ関数に対する for~in でも同じ挙動。

def num():
    for n in range(10):
        yield n

def boo():
    b = num()
    for n in b:
        print n  # 0 を出力
        break

    for n in b:
        print n  # 1 以降を出力

listやdict.iter*()などは常に先頭から返しなおす。

def foo():
    a = [1, 2, 3]
    for n in a:
        print n  # 1 を出力
        break

    for n in a:
        print n  # 1 から出力しなおす
def foo():
    a = {'abc': 0, 'def': 1, 'xyz': 3}
    for n in a.iterkeys():
        print n  # 'abc' を出力
        break

    for n in a.iterkeys():
        print n  # 'abc' から出力しなおす