tiissa <[EMAIL PROTECTED]> wrote in message news:<[EMAIL PROTECTED]>... > Synonymous wrote: > > tiissa <[EMAIL PROTECTED]> wrote in message news:<[EMAIL PROTECTED]>... > > > >>tiissa wrote: > >> > >>>If you know the number of characters to match can't you just compare > >>>slices? > >> > >>If you don't, you can still do it by hand: > >> > >>In [7]: def cmp(s1,s2): > >> ....: diff_map=[chr(s1[i]!=s2[i]) for i in range(min(len(s1), > >>len(s2)))] > >> ....: diff_index=''.join(diff_map).find(chr(True)) > >> ....: if -1==diff_index: > >> ....: return min(len(s1), len(s2)) > >> ....: else: > >> ....: return diff_index > >> ....: > > > > I will look at that, although if i have 300 images i dont want to type > > all the comparisons (In [9]: cmp('ccc','cccap')) by hand, it would > > just be easier to sort them then :). > > I didn't meant you had to type it by hand. I thought about writing a > small script (as opposed to using some in the standard tools). It might > look like: > > In [22]: def make_group(L): > ....: root,res='',[] > ....: for i in range(1,len(L)): > ....: if ''==root: > ....: root=L[i][:cmp(L[i-1],L[i])] > ....: if ''==root: > ....: res.append((L[i-1],[L[i-1]])) > ....: else: > ....: res.append((root,[L[i-1],L[i]])) > ....: elif len(root)==cmp(root,L[i]): > ....: res[-1][1].append(L[i]) > ....: else: > ....: root='' > ....: if ''==root: > ....: res.append((L[-1],[L[-1]])) > ....: return res > ....: > > In [23]: L=['cccat','cccap','cccan','dddfa','dddfg','dddfz'] > > In [24]: L.sort() > > In [25]: make_group(L) > Out[25]: [('ccca', ['cccan', 'cccap', 'cccat']), ('dddf', ['dddfa', > 'dddfg', 'dddfz'])] > > > However I guarantee no optimality in the number of classes (but, hey, > that's when you don't specify the size of the prefix). > (Actually, I guarantee nothing at all ;p) > But in particular, you can have some file singled out: > > In [26]: make_group(['cccan','cccap','cccat','cccb']) > Out[26]: [('ccca', ['cccan', 'cccap', 'cccat']), ('cccb', ['cccb'])] > > > It is a matter of choice: either you want to specify by hand the size of > the prefix and you'd rather look at itertools as pointed out by Kent, or > you don't and a variation with the above code might do the job.
Thank you, that is very kool I found out how to copy files finally with shutil too, so i'm getting close to doing something. Going to be working on an old computer, playing with files = dangerous lol. Thanks for your help and taking the time to post! Bye :o) S M -- http://mail.python.org/mailman/listinfo/python-list