GroupBy با نام فلدر - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

GroupBy با نام فلدر

+1 امتیاز
قصد دارم فایل های تو یک فلدر را بخونم و GroupBy کنم با پسوند فایل مثلاً فقط باید برای هر نام فایل دو پسوند موجود باشه 2 تا لیست پسوند اولی دومی دارم که اگر متعلق به این لیست باشن می مونن وگرنه پاک میشن
سوال شده اردیبهشت 12, 1399  بوسیله ی AliStar (امتیاز 164)   2 20 32

1 پاسخ

+1 امتیاز

برای اینکار باید از defaultdict استفاده کنید هر فایل را به مسیر و نام فایل و پسوند تقسیم کنید سپس  مسیر و نام فایل را join کنید و به عنوان کلید در نظر بگیرید و پسوند هم به عنوان value باشه.

  groups = defaultdict(list)
  for filename in files_name:
       tokens = FileUtility.getFileTokens(filename)
       groups[os.path.join(tokens[0],tokens[1])].append(tokens[2])

 

پروسس کردن دیکشنری هم به صورت زیر:

for group, items in groups.items():
   print(f'{group}  {items}')

 

پاسخ داده شده اردیبهشت 12, 1399 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
...