Created
May 11, 2022 05:54
-
-
Save harendra21/dc5657b66c9cba0a748f24c5a346504d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python3 | |
import argparse | |
import os | |
def path(): | |
parse = argparse.ArgumentParser( | |
add_help=True, description="Organize your files to different directories according to their type") | |
parse.add_argument('directory_path', type=str, default='./', | |
help="The absolute path to the directory") | |
return parse.parse_args().directory_path | |
documents = ['.log', '.txt', '.doc', '.docx', '.md', '.pdf', '.wps'] | |
picture = ['.png', '.jpg', 'jpeg', '.bmp'] | |
music = ['.mp3', '.wav'] | |
compressed = ['.zip', '.rar', '.tar', '.gz', '.bz2', '.xz'] | |
video = ['.3gp', '.mov', '.mp4', '.mkv', '.srt', '.avi'] | |
web = ['.html', .'.css', '.js'] | |
source = ['.py', '.c', '.cpp', '.java',] | |
directories = [path() + '/Compressed', path() + '/Documents', | |
path() + '/Pictures', path() + '/Music', path() + '/Video', path() + '/Web', path() + '/Source-codes',] | |
print("This will organize your files to different directories according to their type!!") | |
print("Are you sure you want to continue? (y/n)") | |
flag = input('>>>') | |
if flag.lower() == 'y': | |
try: | |
for d in directories: | |
os.mkdir(d) | |
except FileExistsError: | |
pass | |
for files in os.listdir(path()): | |
dot = (files.rfind('.')) | |
if dot is not 0 and dot is not -1: | |
if files[dot:].lower() in music: | |
os.rename(path() + '/' + files, path() + '/Music/' + files) | |
if files[dot:].lower() in picture: | |
os.rename(path() + '/' + files, path() + '/Pictures/' + files) | |
if files[dot:].lower() in documents: | |
os.rename(path() + '/' + files, path() + '/Documents/' + files) | |
if files[dot:].lower() in compressed: | |
os.rename(path() + '/' + files, path() + | |
'/Compressed/' + files) | |
if files[dot:].lower() in video: | |
os.rename(path() + '/' + files, path() + '/Video/' + files) | |
if files[dot:].lower() in web: | |
os.rename(path() + '/' + files, path() + '/Web/' + files) | |
if files[dot:].lower() in source: | |
os.rename(path() + '/' + files, path() + '/Source-codes/' + files) | |
for d in directories: | |
if os.listdir(d) is None: | |
os.removedirs(d) | |
else: | |
print("Exiting") | |
os.sys.exit(0) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment