Pythonで文字列を固定長でスライスする

たまには Python も書かねば。

タイトルのとおりなんだけど、ちょうどいい関数やメソッドが見当たらなかったので書いた。
要するに Ruby の Enumerable#each_slice みたいなのの文字列版。

def string_each_slice(s, n):
    i = 0
    r = []
    while i < len(s):
       r.append(s[i:i+n])
       i += n
    return r

s = "abcdefg"
print string_each_slice(s, 2)
^o^ > python string_each_slice.py
['ab', 'cd', 'ef', 'g']

最後が指定した固定長に足らない場合は、足らないまま返す。まあ、これは Ruby の Enumerable#each_slice と同じ振る舞いにしただけ。