> Thanks for making me aware of the (UNIX) split command (split -l 5
> inFile.txt), it's short, it's fast, it's beautiful.
> 
> I am still wondering how to do this efficiently in Python (being kind
> of new to it... and it's not for homework).

Something like this should do the job:

def nlines(num, fileobj):
    done = [False]
    def doit():
        for i in xrange(num):
            l = fileobj.readline()
            if not l:
                done[0] = True
                return
            yield l
    while not done[0]:
        yield doit()

for i, group in enumerate(nlines(5, open('bigfile.txt'))):
    out = open('chunk_%d.txt' % i)
    for line in group:
        out.write(line)


> I am still wondering how to do this in Python (being new to Python)

This is just one way of doing it, but not as concise as using split...

Alberto


-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to