Hi, This weekend I had some problems to get a list containing file paths to be sorted in a way that I could use.
I also found a thread in this mailing list ( http://mail.python.org/pipermail/python-list/2007-April/433590.html ) and realized that others might be interested in a solution. So... here is my five cents regarding file path sorting: Problem description: You have a list containing some file names: >>> file_list = ["File2.txt","File1.txt","File10.txt"] If you sort this list in the conventional way you end up with a result like: >>> file_list.sort() >>> print file_list ['File1.txt','File10.txt','File2.txt'] Solution: Sort the list by splitting alphas and digits in to groups and compare them separately. import re def true_alphanum_cmp(a,b): aa = re.findall(r'\d |\D ', a) bb = re.findall(r'\d |\D ', b) for i in range(min(len(aa),len(bb))): if aa[i].isdigit() and bb[i].isdigit(): c = cmp(int(aa[i]),int(bb[i])) else: c = cmp(aa[i],bb[i]) if c!=0: return c return cmp(len(aa),len(bb)) file_list = ["File2.txt","File1.txt","File10.txt"] file_list.sort(true_alphanum_cmp) If the formatting in this mail is messed up you can find the example at http://arainyday.se/notebook/true_alphanum_cmp.php All comments and improvements are welcome! Best regards John Eriksson _________________________________________ Logica - Releasing your potential Tegsplan 2b 904 20 UMEĆ Sweden T: +46 (0) 90 15 91 38 M: +46 (0) 70 366 16 77 E: [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]> www.logica.se<http://www.logica.se>
-- http://mail.python.org/mailman/listinfo/python-list