for key, rows in groupby(csv.reader(open('foo.csv')), lambda row: row[0]):
    with open('%s.txt' % key, 'w') as output:
        pass
Как разбить огромный CSV-файл на основе содержимого первого столбца?