[Python-ideas] itertools.chunks()

Giampaolo RodolĂ  g.rodola at gmail.com
Sat Apr 6 14:50:16 CEST 2013


def chunks(total, step):
    assert total >= step
    while total > step:
        yield step;
        total -= step;
    if total:
        yield total

>>> chunks(12, 4)
[4, 4, 4]
>>> chunks(13, 4)
[4, 4, 4, 1]


I'm not sure how appropriate "chunks" is as a name for such a function.
Anyway, I wrote that because in a unit test I had to create a file of
a precise size, like this:

FILESIZE = (10 * 1024 * 1024) + 423  # 10MB and 423 bytes
with open(TESTFN, 'wb') as f:
     for csize in chunks(FILESIZE, 262144):
         f.write(b'x' * csize)

Now I wonder, would it make sense to have something like this into
itertools module?


--- Giampaolo
https://code.google.com/p/pyftpdlib/
https://code.google.com/p/psutil/
https://code.google.com/p/pysendfile/



More information about the Python-ideas mailing list