Промт для отслеживания событий в сетевой папке на Python

Программирование и код

Кому нужен этот промт и как он работает?

Этот промт предназначен для программистов и специалистов IT, которым нужно автоматически отслеживать изменения в сетевых папках и сохранять данные об этих событиях в базе данных. Он помогает упростить мониторинг файловых операций и быстро получать сведения о добавлении, изменении или удалении файлов.

Промт задаёт искусственному интеллекту роль эксперта по Python. Он позволяет убедиться, что задача понята правильно, через уточняющие вопросы, а затем генерирует подробное и хорошо структурированное решение с комментариями в коде. Это облегчает разработку программ для отслеживания событий и интеграцию с базами данных.

Готовый к использованию промт

Как использовать промт и на что обращать внимание

Для максимальной эффективности чётко указывайте контекст задачи и особенности требований, например, тип базы данных или операционную систему.

  • Обратите внимание, что для полноценного отслеживания событий может потребоваться доступ к файловой системе и дополнительные настройки разрешений.
  • Учитывайте, что решение срабатывает лучше при наличии полной информации о требованиях — не бойтесь задавать уточняющие вопросы во время диалога с ИИ.
  • Промт ориентирован на генерацию кода с комментариями: при использовании полученного кода рекомендуется тщательно проверить его в вашей среде выполнения.
  • Возможна нестабильность при специфических файловых системах или сетевых протоколах — в таких случаях стоит дополнительно тестировать и настраивать код.

Примеры использования

Этот пример помогает отслеживать появление новых файлов в общем каталоге компании и сохранять информацию в SQLite базе для последующего аудита.

Этот пример поможет создать систему, которая фиксирует все изменения в папке с документами в корпоративной сети и сохраняет логи в PostgreSQL для анализа комиссии по безопасности.

Пример вывода нейросети

✅ Для решения задачи используем библиотеку watchdog, которая отслеживает события в заданной папке, и sqlite3 для хранения данных.

import time
import sqlite3
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

# Класс для обработки событий файловой системы
class WatcherHandler(FileSystemEventHandler):
def __init__(self, db_conn):
self.db_conn = db_conn

def on_created(self, event):
if not event.is_directory:
self.log_event('created', event.src_path)

def on_modified(self, event):
if not event.is_directory:
self.log_event('modified', event.src_path)

def on_deleted(self, event):
if not event.is_directory:
self.log_event('deleted', event.src_path)

def log_event(self, event_type, file_path):
cursor = self.db_conn.cursor()
cursor.execute("INSERT INTO events (event_type, file_path, timestamp) VALUES (?, ?, CURRENT_TIMESTAMP);",
(event_type, file_path))
self.db_conn.commit()
print(f"Logged {event_type} for {file_path}")

def main():
# Подключаемся к базе данных SQLite
conn = sqlite3.connect('file_events.db')
cursor = conn.cursor()
# Создаём таблицу, если её нет
cursor.execute('''
CREATE TABLE IF NOT EXISTS events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
event_type TEXT,
file_path TEXT,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
)
''')
# Директория для отслеживания
path = "/path/to/network/folder"
event_handler = WatcherHandler(conn)
observer = Observer()
observer.schedule(event_handler, path=path, recursive=True)

observer.start()
print(f"Starting monitoring of {path}")

try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
conn.close()

if __name__ == "__main__":
main()

Данный код создаёт наблюдателя, который регистрирует по событиям в заданной сетевой папке и записывает их в SQLite базу с отметкой времени. Каждая функция обработчика подробно прокомментирована для понимания логики.

Примечание: результат примерный и может отличаться в зависимости от конкретных условий.

Итоги: зачем использовать этот промт?

Использование данного промта позволяет быстро получить качественное и понятное решение для отслеживания событий в сетевых папках с автоматическим сохранением в базу данных. Это экономит время на проектирование и кодирование, помогает избежать ошибок и улучшает прозрачность работы с файлами.

Главное преимущество: автоматизация мониторинга сетевых папок с подробным, легко поддерживаемым кодом под Python

gpt
Оцените автора
Добавить комментарий