import shutil
import time
from watchdog.events import FileSystemEventHandler
from watchdog.observers import Observer
class EventHandler(FileSystemEventHandler):
def on_created(self, event):
print(event.event_type, event.src_path)
print('О новый файл! Я его копирую!')
shutil.copy(event.src_path, 'C:\\test\\backup')
if __name__ == "__main__":
path = r"C:\test\testcopy"
event_handler = EventHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
import os
import shutil
import time
from watchdog.events import FileSystemEventHandler
from watchdog.observers import Observer
class EventHandler(FileSystemEventHandler):
def __init__(self, dest_folder):
super().__init__()
self.dest_folder = dest_folder
def on_created(self, event):
print(event.event_type, event.src_path)
print('О новый файл! Я его копирую!')
shutil.copy(event.src_path, self.dest_folder)
if __name__ == "__main__":
src_path = input("Введите путь к исходной папке: ")
dest_path = input("Введите путь к папке назначения: ")
if not os.path.exists(src_path):
print(f"{src_path} не существует.")
exit()
if not os.path.exists(dest_path):
print(f"{dest_path} не существует.")
exit()
event_handler = EventHandler(dest_path)
observer = Observer()
observer.schedule(event_handler, src_path, recursive=True)
observer.start()
observer.join()
import tkinter as tk
from tkinter import filedialog as fd
root = tk.Tk() # пустое родительское окно
root.withdraw() # прячем его
result = fd.askdirectory(
master=root, # диалогу нужно родительское окно, путь даже невидимое.
mustexist=True) # только существующие каталоги
root.destroy() # уничтожаем родительское окно
print(type(result), repr(result)) # result будет содержать путь или пустую строку при отмене