Импорт необходимых модулей
Для начала нам нужно импортировать необходимые модули для нашего приложения. Мы будем использовать модуль tkinter, который предоставляет пользовательский интерфейс для создания графических интерфейсов пользователя (GUI). Мы также импортируем ttk (инструментарий для создания стильных интерфейсов), filedialog (для выбора файлов и папок) и messagebox (для отображения сообщений пользователю)
import tkinter as tk
from tkinter import ttk, filedialog, messagebox
Определение функций
Далее мы определяем две функции: select_date и select_folder. Функция select_date позволяет пользователю выбирать дату с помощью календаря(пока не работает). Функция select_folder, с другой стороны, помогает пользователю выбрать папку, открывая диалоговое окно с файлами.
Наконец, мы определяем функцию run_script, которая будет использоваться для запуска скрипта после того, как пользователь выберет дату и папку.
def select_date():
# Здесь нужно добавить функциональность для выбора даты
# Например, можно использовать календарь
date_entry.delete(0, tk.END)
date_entry.insert(0, "Введенная дата")
def select_folder():
folder_path = filedialog.askdirectory()
folder_entry.delete(0, tk.END)
folder_entry.insert(0, folder_path)
def run_script():
file_date = date_entry.get()
folder_name = folder_entry.get()
root = tk.Tk()
root.title("Копирование файлов")
Создание графического интерфейса
Теперь мы создаем главное окно нашего приложения, используя конструктор Tk(). Мы задаем заголовку окна значение "Копирование файлов".
Затем мы создаем три метки: одну для даты, одну для пути к папке и одну для кнопки "Выполнить". В метке даты будет отображаться текст "Дата (ГГГГ-ММ-ДД):", а в метке пути к папке - "Путь к папке:".
Далее мы создаем три записи: одну для даты, одну для пути к папке и одну для кнопки "Выполнить". Запись даты будет использоваться для ввода выбранной даты, в то время как запись пути к папке будет использоваться для выбранного пути к папке.
Наконец, мы создаем три кнопки: одну для выбора даты, одну для выбора пути к папке и одну для запуска скрипта.
date_label = tk.Label(root, text="Дата (ГГГГ-ММ-ДД):")
date_label.grid(row=0, column=0, padx=10, pady=10)
date_entry = tk.Entry(root)
date_entry.grid(row=0, column=1, padx=10, pady=10)
date_button = tk.Button(root, text="Выбрать дату", command=select_date)
date_button.grid(row=0, column=2, padx=10, pady=10)
folder_label = tk.Label(root, text="Путь к папке с логами Aplication Servers:")
folder_label.grid(row=1, column=0, padx=10, pady=10)
folder_entry = tk.Entry(root)
folder_entry.grid(row=1, column=1, padx=10, pady=10)
folder_button = tk.Button(root, text="Выбрать папку", command=select_folder)
folder_button.grid(row=1, column=2, padx=10, pady=10)
run_button = tk.Button(root, text="Запустить", command=run_script)
run_button.grid(row=2, column=1, padx=10, pady=10)
root.mainloop()
Для чего это нужно?
Это позволит избежать необходимости вручную указывать конечную папку и выбирать её. Кроме того, можно добавить календарь, чтобы не вводить данные вручную. Переупаковка в исполняемый файл (exe) превратит программу в удобный инструмент для копирования файлов.