-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfile_parser.py
More file actions
127 lines (100 loc) · 3.06 KB
/
file_parser.py
File metadata and controls
127 lines (100 loc) · 3.06 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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import sys
from pathlib import Path
JPEG_IMAGES = []
JPG_IMAGES = []
PNG_IMAGES = []
SVG_IMAGES = []
AVI_VIDEO = []
MP4_VIDEO = []
MOV_VIDEO = []
MKV_VIDEO = []
OGG_AUDIO = []
WAV_AUDIO = []
AMR_AUDIO = []
MP3_AUDIO = []
DOC_DOKUMENTS = []
DOCX_DOKUMENTS = []
TXT_DOKUMENTS = []
PDF_DOKUMENTS = []
XLSX_DOKUMENTS = []
PPTX_DOKUMENTS = []
MY_OTHER = []
ZIP_ARCHIVES = []
GZ_ARCHIVES = []
TAR_ARCHIVES = []
REGISTER_EXTENSION = {
'JPEG': JPEG_IMAGES,
'JPG': JPG_IMAGES,
'PNG': PNG_IMAGES,
'SVG': SVG_IMAGES,
'AVI': AVI_VIDEO,
'MP4': MP4_VIDEO,
'MOV': MOV_VIDEO,
'MKV': MKV_VIDEO,
'DOC': DOC_DOKUMENTS,
'DOCX': DOCX_DOKUMENTS,
'TXT': TXT_DOKUMENTS,
'PDF': PDF_DOKUMENTS,
'XLCX': XLSX_DOKUMENTS,
'PPTX': PPTX_DOKUMENTS,
'MP3': MP3_AUDIO,
'OGG': OGG_AUDIO,
'WAV': WAV_AUDIO,
'AMR': AMR_AUDIO,
'ZIP': ZIP_ARCHIVES,
'GZ': GZ_ARCHIVES,
'TAR': TAR_ARCHIVES,
}
FOLDERS = []
EXTENSIONS = set()
UNKNOWN = set()
def get_extension(name: str) -> str:
return Path(name).suffix[1:].upper() # suffix[1:] -> .jpg -> jpg
def scan(folder: Path):
for item in folder.iterdir():
# Робота з папкою
if item.is_dir(): # перевіряємо чи обєкт папка
if item.name not in ('archives', 'video', 'audio', 'documents', 'images', 'MY_OTHER'):
FOLDERS.append(item)
scan(item)
continue
# Робота з файлом
extension = get_extension(item.name) # беремо розширення файлу
full_name = folder / item.name # беремо повний шлях до файлу
if not extension:
MY_OTHER.append(full_name)
else:
try:
ext_reg=REGISTER_EXTENSION[extension]
ext_reg.append(full_name)
EXTENSIONS.add(extension)
except KeyError:
UNKNOWN.add(extension) # .mp4, .mov, .avi
MY_OTHER.append(full_name)
if __name__ == '__main__':
folder_process = sys.argv[1]
scan(Path(folder_process))
print(f'Images jpeg: {JPEG_IMAGES}')
print(f'Images jpg: {JPG_IMAGES}')
print(f'Images png: {PNG_IMAGES}')
print(f'Images svg: {SVG_IMAGES}')
print(f'Video avi: {AVI_VIDEO}')
print(f'Video mp4: {MP4_VIDEO}')
print(f'Video mov: {MOV_VIDEO}')
print(f'Video mkv: {MKV_VIDEO}')
print(f'Documents doc: {DOC_DOKUMENTS}')
print(f'Documents docx: {DOCX_DOKUMENTS}')
print(f'Documents txt: {TXT_DOKUMENTS}')
print(f'Documents pdf: {PDF_DOKUMENTS}')
print(f'Documents xlsx: {XLSX_DOKUMENTS}')
print(f'Documents pptx: {PPTX_DOKUMENTS}')
print(f'AUDIO mp3: {MP3_AUDIO}')
print(f'AUDIO ogg: {OGG_AUDIO}')
print(f'AUDIO amr: {AMR_AUDIO}')
print(f'AUDIO wav: {WAV_AUDIO}')
print(f'Archives zip: {ZIP_ARCHIVES}')
print(f'Archives gz: {GZ_ARCHIVES}')
print(f'Archives tar: {TAR_ARCHIVES}')
print(f'EXTENSIONS: {EXTENSIONS}')
print(f'UNKNOWN: {UNKNOWN}')
print(f'Folders: {FOLDERS}')