0

I have the following files in a folder:

a235626_1.jpg
a235626_2.jpg
a235626_3.jpg
a235626_4.jpg
a235626_5.jpg
A331744R_1.JPG
A331744R_2.jpg
A331758L_1.JPG
A331758L_2.jpg
A331758R_1.JPG
A331758R_2.jpg
A331789L_1.JPG
A331789L_2.jpg
A331789R_1.JPG
A331789R_2.jpg
A331793L_1.JPG
A331793L_2.jpg
A331826L_1.JPG
A331826L_2.jpg
A331826R_1.JPG
A331826R_2.jpg
A335531L_1.JPG
A335531R_1.JPG
A335531R_2.jpg

How can i group them so that i get:

a235626_1.jpg|a235626_2.jpg|a235626_3.jpg|a235626_4.jpg|a235626_5.jpg A331744R_1.JPG|A331744R_2.JPG A331758L_1.JPG|A331758L_2.JPG

... and so on. Thanks!

2 Answers2

1

Use itertools.groupby

from itertools import groupby
files = ['a235626_1.jpg', 'a235626_2.jpg', 'a235626_3.jpg', 'a235626_4.jpg', 'a235626_5.jpg', 'A331744R_1.JPG',
         'A331744R_2.jpg', 'A331758L_1.JPG', 'A331758L_2.jpg', 'A331758R_1.JPG', 'A331758R_2.jpg', 'A331789L_1.JPG',
         'A331789L_2.jpg', 'A331789R_1.JPG', 'A331789R_2.jpg', 'A331793L_1.JPG', 'A331793L_2.jpg', 'A331826L_1.JPG',
         'A331826L_2.jpg', 'A331826R_1.JPG', 'A331826R_2.jpg', 'A335531L_1.JPG', 'A335531R_1.JPG', 'A335531R_2.jpg']

for key, items in groupby(files, lambda t: t.split('_')[0]):
    print('|'.join(items))

>>> a235626_1.jpg|a235626_2.jpg|a235626_3.jpg|a235626_4.jpg|a235626_5.jpg
>>> A331744R_1.JPG|A331744R_2.jpg
>>> A331758L_1.JPG|A331758L_2.jpg
>>> A331758R_1.JPG|A331758R_2.jpg
>>> A331789L_1.JPG|A331789L_2.jpg
>>> A331789R_1.JPG|A331789R_2.jpg
>>> A331793L_1.JPG|A331793L_2.jpg
>>> A331826L_1.JPG|A331826L_2.jpg
>>> A331826R_1.JPG|A331826R_2.jpg
>>> A335531L_1.JPG
>>> A335531R_1.JPG|A335531R_2.jpg
Wondercricket
  • 7,651
  • 2
  • 39
  • 58
0

I think this question is quite similar to your question and it has been answered before. Can you take a look at it? How to sort file names in a particular order using python