Skip to content

Commit 1118024

Browse files
committed
Initial commit
0 parents  commit 1118024

7 files changed

+114
-0
lines changed

file_handling/__init__.py

Whitespace-only changes.
164 Bytes
Binary file not shown.
Binary file not shown.
2.16 KB
Binary file not shown.

file_handling/iter_files.py

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/usr/bin/python3
2+
3+
from .wdog import FileHandler
4+
from shutil import move
5+
import os
6+
import time
7+
8+
class IterHandler(FileHandler):
9+
def iter_folder(self):
10+
_dir = os.listdir(self.tracked_folder)
11+
tmp_dir = _dir
12+
for file in tmp_dir:
13+
# Checks if the file is a directory and then removes it from the file list
14+
if os.path.isdir(f'{self.tracked_folder}\\{file}'):
15+
print('found a folder')
16+
_dir.remove(file)
17+
18+
for file in _dir:
19+
time.sleep(0.3)
20+
for key in self.file_extensions.keys():
21+
if key in file:
22+
extension = self.file_extensions[key]
23+
_dest = f'{self.tracked_folder}\\{extension}\\{file}'
24+
move(f'{self.tracked_folder}\\{file}', _dest)
25+
print('Change detected! Moving file {} to folder {}'.format(file, _dest.split('\\')[-2]))
26+
27+
28+
def initialize_iter():
29+
handler = IterHandler(r'C:\Users\DOUGLASEDUARDOREISSI\Downloads')
30+
handler.iter_folder()

file_handling/watch_files.py

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#!/usr/bin/python3
2+
3+
from watchdog.observers import Observer
4+
from watchdog.events import FileSystemEventHandler
5+
from shutil import move
6+
import os
7+
import time
8+
9+
class FileHandler(FileSystemEventHandler):
10+
11+
file_extensions = {
12+
'.jpg' : 'photos',
13+
'.png' : 'photos',
14+
'.bmp' : 'photos',
15+
'.gif' : 'photos',
16+
'.txt' : 'text',
17+
'.docx' : 'documents',
18+
'.pdf' : 'documents',
19+
'.odt' : 'documents',
20+
'.exe' : 'programs',
21+
'.bat' : 'programs',
22+
'.msi' : 'programs',
23+
'.zip' : 'compressed',
24+
'.rar' : 'compressed',
25+
'.mp4' : 'videos',
26+
'.avi' : 'videos',
27+
'.webm' : 'videos',
28+
'.mp3' : 'music',
29+
'.WAV' : 'music',
30+
'.mid' : 'midi',
31+
'.psd' : 'photoshop_projects',
32+
'.ai' : 'illustrator_projects',
33+
'.jar' : 'java_files',
34+
'.html' : 'html_files'
35+
}
36+
37+
def __init__(self, tracked_folder):
38+
self.tracked_folder = tracked_folder
39+
for value in self.file_extensions.values():
40+
if not os.path.isdir(f'{self.tracked_folder}\\{value}\\'):
41+
os.mkdir(f'{self.tracked_folder}\\{value}\\')
42+
43+
print('Initialized')
44+
45+
def on_created(self, event):
46+
time.sleep(1)
47+
for key in self.file_extensions.keys():
48+
if key in event.src_path:
49+
extension = self.file_extensions[key]
50+
_name = '_'.join(time.asctime().replace(':', '.').split(' ')) + key
51+
_dest = f'{self.tracked_folder}\\{extension}\\{_name}'
52+
move(event.src_path, _dest)
53+
print('Change detected! Moving file {} to folder {}'.format(event.src_path.split('\\')[-1], _dest.split('\\')[-2]))
54+
55+
def add_file_extensions(self, extension, folder):
56+
self.file_extensions[extension] = folder
57+
58+
def initialize_watching():
59+
handler = FileHandler(r'C:\Users\DOUGLASEDUARDOREISSI\Downloads')
60+
observer = Observer()
61+
observer.schedule(handler, handler.tracked_folder, recursive=True)
62+
observer.start()
63+
64+
while True:
65+
try:
66+
time.sleep(10)
67+
except KeyboardInterrupt:
68+
observer.stop()
69+
observer.join()
70+
break

main.py

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from file_handling.iter_down import initialize_iter
2+
from file_handling.wdog import initialize_watching
3+
4+
def main():
5+
option = int(input('[1] iter [2] watch\n'))
6+
if option == 1:
7+
initialize_iter()
8+
elif option == 2:
9+
initialize_watching()
10+
else:
11+
main()
12+
13+
if __name__ == '__main__':
14+
main()

0 commit comments

Comments
 (0)