Question on sorting

wes weston wweston at att.net
Mon Nov 29 13:54:52 EST 2004


Lad wrote:
> Hi,
> I have a file of records of 4 fields each.
> Each field is separated by a semicolon. That is
> 
> Filed1;Ffield2;Field3;Field4
> 
> But there may be also empty records such as
> ;;;;
> (only semicolons).
> 
> For sorting I used
> #################
> lines = file('Config.txt').readlines()# a file I want to sort
> lines.sort()
> ff=open('ConfigSorted.txt','w')# sorted file
> ff.writelines(lines)
> ff.close()
> ###############
> It was sorted but empty records were first. I need them to be last(at
> the end of the file). How can I do that?
> 
> Thanks for help
> Lad

Lad,
    The sort call can have a function name as an arg. You
could do:

def mycompare(s1,s2):
#return -1 to put s1's at front; 1 to put s1's at back; 0 for a tie
#if s1==";;;;" and s2<>";;;;": return 1

lines.sort(mycompare)

wes




More information about the Python-list mailing list