-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathorganize_your_folder.py
60 lines (52 loc) · 2.19 KB
/
organize_your_folder.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
###script that organizes your folder by creating sub folders for each category
import os
import sys
from pathlib import Path
DIRECTORIES = {
"HTML": [".html5", ".html", ".htm", ".xhtml"],
"IMAGES": [".jpeg", ".jpg", ".tiff", ".gif", ".bmp", ".png", ".bpg", "svg",
".heif", ".psd"],
"VIDEOS": [".avi", ".flv", ".wmv", ".mov", ".mp4", ".webm", ".vob", ".mng",
".qt", ".mpg", ".mpeg", ".3gp"],
"DOCUMENTS": [".oxps", ".epub", ".pages", ".docx", ".doc", ".fdf", ".ods",
".odt", ".pwi", ".xsn", ".xps", ".dotx", ".docm", ".dox",
".rvg", ".rtf", ".rtfd", ".wpd", ".xls", ".xlsx", ".ppt",
"pptx"],
"ARCHIVES": [".a", ".ar", ".cpio", ".iso", ".tar", ".gz", ".rz", ".7z",
".dmg", ".rar", ".xar", ".zip"],
"AUDIO": [".aac", ".aa", ".aac", ".dvf", ".m4a", ".m4b", ".m4p", ".mp3",
".msv", "ogg", "oga", ".raw", ".vox", ".wav", ".wma"],
"PLAINTEXT": [".txt", ".in", ".out"],
"PDF": [".pdf"],
"PYTHON": [".py"],
"XML": [".xml", ".csv"],
"EXE": [".exe"],
"SHELL": [".sh"]
}
FILE_FORMATS = {file_format: directory
for directory, file_formats in DIRECTORIES.items()
for file_format in file_formats}
def organize_junk(dir_to_work):
for entry in os.scandir(path=dir_to_work):
if entry.is_dir():
continue
file_path = Path(entry)
file_only = os.path.basename(file_path)
#print(file_only)
file_format = file_path.suffix.lower()
if file_format in FILE_FORMATS:
directory_path = Path(dir_to_work + '\\' + FILE_FORMATS[file_format])
#directory_path = os.path.join(dir_to_work, directory_path)
#print(directory_path)
directory_path.mkdir(exist_ok=True)
#print(directory_path.joinpath(file_only))
file_path.rename(directory_path.joinpath(file_only))
#for dir in os.scandir():
#try:
#os.rmdir(dir)
#except:
#pass
if __name__ == "__main__":
dir_to_work = sys.argv[1]
#dir_to_work = r'C:\Python_practice_scripts'
organize_junk(dir_to_work)