-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscan.py
More file actions
87 lines (77 loc) · 1.98 KB
/
scan.py
File metadata and controls
87 lines (77 loc) · 1.98 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import sys
from pathlib import Path
jpeg_files = list()
png_files = list()
jpg_files = list()
svg_files = list()
txt_files = list()
docx_files = list()
doc_files = list()
pdf_files = list()
xlsx_files = list()
pptx_files = list()
mp3_files = list()
ogg_files = list()
wav_files = list()
amr_files = list()
avi_files = list()
mp4_files = list()
mov_files = list()
mkv_files = list()
zip_files = list()
gz_files = list()
tar_files = list()
folders = list()
archives = list()
others = list()
unknown = set()
extensions = set()
registered_extensions = {
'JPEG': jpeg_files,
'PNG': png_files,
'JPG': jpg_files,
'SVG': svg_files,
'DOC': doc_files,
'TXT': txt_files,
'DOCX': docx_files,
'PDF': pdf_files,
'XLSX': xlsx_files,
'PPTX': pptx_files,
'MP3': mp3_files,
'OGG': ogg_files,
'WAV': wav_files,
'AMR': amr_files,
'AVI': avi_files,
'MP4': mp4_files,
'MOV': mov_files,
'MKV': mkv_files,
'ZIP': zip_files,
'GZ': gz_files,
'TAR': tar_files
}
def get_extensions(file_name):
return Path(file_name).suffix[1:].upper()
def scan(folder):
for item in folder.iterdir():
if item.is_dir():
if item.name not in ('JPEG', 'PNG', 'JPG', 'SVG', 'TXT', 'DOCX', 'DOC', 'PDF', 'XLSX', 'PPTX', 'MP3', 'OGG', 'WAV', 'AMR', 'AVI', 'MP4', 'MOV', 'MKV', 'ZIP', 'GZ', 'TAR', 'OTHER'):
folders.append(item)
scan(item)
continue
extension = get_extensions(file_name=item.name)
new_name = folder/item.name
if not extension:
others.append(new_name)
else:
try:
container = registered_extensions[extension]
extensions.add(extension)
container.append(new_name)
except KeyError:
unknown.add(extension)
others.append(new_name)
if __name__ == '__main__':
path = sys.argv[1]
#print(f"Start in {path}")
folder = Path(path)
scan(folder)