Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
#!/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