|
| 1 | +# First project using Python |
| 2 | + |
| 3 | +# FILE SAPARATOR APPLICATION |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | +import os,shutil |
| 8 | + |
| 9 | +# NOTE: you can write every singlr extensions inside tuple |
| 10 | + |
| 11 | + |
| 12 | +dict_extensions={ |
| 13 | + 'audio_extensions' : ('.aif','.cda','.mid','.midi','.mp3','.mpa','.ogg','.wav','.wma','.wpl'), |
| 14 | + 'compressed_file_extensions': ('.7z','.arj','.deb','.pkg','.rar','.rpm','.tar.gz','.z','.zip'), |
| 15 | + 'disc_and_media_extensions' : ('.bin','.dmg','.iso','.toast','.vcd'), |
| 16 | + 'database_file_extensions' : ('.csv','.dat','.db','.dbf','.log','.mdb','.sav','.sql','.tar','.xml'), |
| 17 | + 'email_extensions' : ('.email','.eml','.emlx','.msg','.oft','.ost','.pst','.vcf'), |
| 18 | + 'executable_extensions' : ('.apk','.bat','.bin','.cgi','.pl','.com','.exe','.gadget','.jar','.msi','.py','.wsf'), |
| 19 | + 'font_file_extensions' : ('.fnt','.fon','.otf','.ttf'), |
| 20 | + 'image_extensions' : ('.ai','.bmp','.gif','.ico','.jpeg','.jpg','.png','.ps','.psd','.svg','.tif','.tiff'), |
| 21 | + 'web_extensions' : ('.asp','.aspx','.cer','.cfm','.cgi','.pl','.css','.htm','.html','.js','.jsp','.part','.php','.py','.rss','.xhtml'), |
| 22 | + 'presentation_extensions' : ('.key','.odp','.pps','.ppt','.pptx'), |
| 23 | + 'programming_extensions' : ('.c','.class','.cpp','.cs','.h','.java','.pl','.sh','.swift','.vb'), |
| 24 | + 'spreadsheet_extensions' : ('.ods','.xls','.xlsm','.xlsx'), |
| 25 | + 'system_realated_extensions': ('.bak','.cab','.cfg','.cpl','.cur','.dll','.dmp','.drv','.icns','.ico','.ini','.lnk','.msi','.sys','.tmp'), |
| 26 | + 'video_extensions' : ('.3g2','.3gp','.avi','.flv','.h264','.m4v','.mkv','.mov','.mp4','.mpg','.mpeg','.rm','.swf','.vob','.wmv'), |
| 27 | + 'file_extensions' : ('.doc','.docx','.odt','.pdf','.rtf','.tex','.txt','.wpd'), |
| 28 | +} |
| 29 | + |
| 30 | +folderpath=input("Please Enter Path:\n") |
| 31 | + |
| 32 | +def file_finder(folder_path,file_extension): |
| 33 | + # files=[] |
| 34 | + # for file in os.listdir(folder_path): |
| 35 | + # for extension in file_extension: |
| 36 | + # if file.endswith(extension): |
| 37 | + # files.append(file) |
| 38 | + # return files |
| 39 | + return [file for file in os.listdir(folder_path) for extension in file_extension if file.endswith(extension)] |
| 40 | + |
| 41 | + |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | +# print(file_finder(folderpath,file_extensions)) #o/p: ['r.pdf'] |
| 46 | +# s=[] |
| 47 | +# s=os.listdir(folderpath) |
| 48 | + |
| 49 | +for extension_type, extension_tuple in dict_extensions.items(): |
| 50 | + folder_name=extension_type.split('_')[0].title()+" Files" |
| 51 | + folder_path=os.path.join(folderpath,folder_name) |
| 52 | + # if folder_name not in s: |
| 53 | + # os.mkdir(folder_path) |
| 54 | + for files in file_finder(folderpath,extension_tuple): |
| 55 | + if os.path.exists(folder_path): |
| 56 | + pass |
| 57 | + elif files==[]: |
| 58 | + pass |
| 59 | + else: |
| 60 | + os.mkdir(folder_path) |
| 61 | + item_old_path=os.path.join(folderpath,files) |
| 62 | + item_new_path=os.path.join(folder_path,files) |
| 63 | + shutil.move(item_old_path,item_new_path) |
| 64 | + |
| 65 | + |
| 66 | + |
| 67 | + # print("calling filefinder...\n") |
| 68 | + # print(file_finder(folderpath,extension_type)) |
| 69 | + |
| 70 | + |
| 71 | + |
0 commit comments