On 04/16/2012 01:11 AM, Lee Chaplin wrote: > Hi all, > > I am trying to sort, in place, by column, a csv file AND sort it case > insensitive. > I was trying something like this, with no success:
Could you perhaps qualify that "no success" bit? Do you mean it didn't output a file, or that the file wasn't sorted right, or that the data wasn't in the file at all, or that you got an exception, or that you got a syntax error, or that your disk filled up, or what? Please paste the results of running it, along with a brief description of why that was not a success. It might also be useful to state your working environment, like you're running 32 bit CPython version 1.7 on Windows 2009, or whatever. in this case, I don't think it matters, but somebody else may know differently. > import csv > import operator > > def sortcsvbyfield(csvfilename, columnnumber): > with open(csvfilename, 'rb') as f: > readit = csv.reader(f) > thedata = list(readit) > > thedata = sorted(thedata, key = lambda x: > (operator.itemgetter(columnnumber) ,x[0].lower())) #!!! > with open(csvfilename, 'wb') as f: > writeit = csv.writer(f) > writeit.writerows(thedata) > > The line marked is the culprit. > Any help is greatly appreciated. > > Thanks, > Lee -- DaveA -- http://mail.python.org/mailman/listinfo/python-list