|
@@ -0,0 +1,156 @@
|
|
|
+"""
|
|
|
+задача: есть папка с jpg , найти файлы в другой папке с таким же названием но расширением .arw и скопировать в другу папку эти файлы arw.
|
|
|
+"""
|
|
|
+
|
|
|
+import os, shutil
|
|
|
+import random
|
|
|
+
|
|
|
+from tkinter import *
|
|
|
+from tkinter import filedialog as fd
|
|
|
+from tkinter.messagebox import showerror, showinfo
|
|
|
+
|
|
|
+def callback_jpg():
|
|
|
+ jpg_dir = fd.askdirectory()
|
|
|
+ jpg_entry.delete(0, END)
|
|
|
+ jpg_entry.insert(0, jpg_dir)
|
|
|
+ return
|
|
|
+
|
|
|
+def callback_arw():
|
|
|
+ arw_dir = fd.askdirectory()
|
|
|
+ arw_entry.delete(0, END)
|
|
|
+ arw_entry.insert(0, arw_dir)
|
|
|
+ return
|
|
|
+
|
|
|
+def callback_copy():
|
|
|
+ copy_dir = fd.askdirectory()
|
|
|
+ copy_entry.delete(0, END)
|
|
|
+ copy_entry.insert(0, copy_dir)
|
|
|
+ return
|
|
|
+
|
|
|
+def callback_exec():
|
|
|
+ jpg_dir = jpg_entry.get()
|
|
|
+ arw_dir = arw_entry.get()
|
|
|
+ copy_dir = copy_entry.get()
|
|
|
+
|
|
|
+ if jpg_dir == "":
|
|
|
+ showerror(title="Ошибка", message="Папка с .jpg пустая")
|
|
|
+ elif arw_dir == "":
|
|
|
+ showerror(title="Ошибка", message="Папка с .arw_dir пустая")
|
|
|
+ else:
|
|
|
+ os.makedirs(jpg_dir, exist_ok=True)
|
|
|
+ os.makedirs(arw_dir, exist_ok=True)
|
|
|
+ if copy_dir == "":
|
|
|
+ copy_dir = os.path.join(arw_dir, "copy")
|
|
|
+ os.makedirs(copy_dir, exist_ok=True)
|
|
|
+
|
|
|
+ # Получаем список jpg-файлов
|
|
|
+ jpg_files = os.listdir(jpg_dir)
|
|
|
+ print(jpg_files)
|
|
|
+
|
|
|
+ # Получаем список jpg-файлов
|
|
|
+ arw_files = os.listdir(arw_dir)
|
|
|
+ print(arw_files)
|
|
|
+
|
|
|
+ for jpg_file in jpg_files:
|
|
|
+ jpg_basename, ext = os.path.splitext(jpg_file)
|
|
|
+ for arw_file in arw_files:
|
|
|
+ arw_basename, ext = os.path.splitext(arw_file)
|
|
|
+
|
|
|
+ if jpg_basename == arw_basename:
|
|
|
+ # куда копировать
|
|
|
+ copy_path = os.path.join(copy_dir, f"{arw_basename}.arw")
|
|
|
+ # что копировать
|
|
|
+ arw_path = os.path.join(arw_dir, f"{arw_basename}.arw")
|
|
|
+
|
|
|
+ shutil.copy(arw_path, copy_path)
|
|
|
+
|
|
|
+ showinfo(title="Выполнено", message="Выполнено")
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ return
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+window = Tk() #Создаём окно приложения.
|
|
|
+window.title("Копирование .arw")
|
|
|
+window.geometry('400x300')
|
|
|
+
|
|
|
+frame = Frame(
|
|
|
+ window, #Обязательный параметр, который указывает окно для размещения Frame.
|
|
|
+ padx = 10, #Задаём отступ по горизонтали.
|
|
|
+ pady = 10 #Задаём отступ по вертикали.
|
|
|
+)
|
|
|
+frame.pack(expand=True)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+jpg_lb = Label(
|
|
|
+ frame,
|
|
|
+ text="Папка с .jpg файлами"
|
|
|
+)
|
|
|
+jpg_lb.grid(row=1, column=1, padx=4, pady=4)
|
|
|
+
|
|
|
+jpg_btn = Button(
|
|
|
+ frame,
|
|
|
+ text='Выбор jpg',
|
|
|
+ command=callback_jpg
|
|
|
+)
|
|
|
+jpg_btn.grid(row=1, column=2, padx=4, pady=4)
|
|
|
+
|
|
|
+jpg_entry = Entry(
|
|
|
+ frame,
|
|
|
+)
|
|
|
+jpg_entry.grid(row=2, column=1, columnspan=4, padx=4, pady=4)
|
|
|
+
|
|
|
+
|
|
|
+arw_lb = Label(
|
|
|
+ frame,
|
|
|
+ text="Папка с .arw файлами"
|
|
|
+)
|
|
|
+arw_lb.grid(row=4, column=1, padx=4, pady=4)
|
|
|
+
|
|
|
+arw_btn = Button(
|
|
|
+ frame,
|
|
|
+ text='Выбор arw',
|
|
|
+ command=callback_arw
|
|
|
+)
|
|
|
+arw_btn.grid(row=4, column=2, padx=4, pady=4)
|
|
|
+
|
|
|
+arw_entry = Entry(
|
|
|
+ frame,
|
|
|
+)
|
|
|
+arw_entry.grid(row=5, column=1, columnspan=4, padx=4, pady=4)
|
|
|
+
|
|
|
+
|
|
|
+copy_lb = Label(
|
|
|
+ frame,
|
|
|
+ text="Папка, куда копировать"
|
|
|
+)
|
|
|
+copy_lb.grid(row=7, column=1, padx=4, pady=4)
|
|
|
+
|
|
|
+copy_btn = Button(
|
|
|
+ frame,
|
|
|
+ text='Куда',
|
|
|
+ command=callback_copy
|
|
|
+)
|
|
|
+copy_btn.grid(row=7, column=2, padx=4, pady=4)
|
|
|
+
|
|
|
+copy_entry = Entry(
|
|
|
+ frame,
|
|
|
+)
|
|
|
+copy_entry.grid(row=8, column=1, columnspan=4, padx=4, pady=4)
|
|
|
+
|
|
|
+
|
|
|
+exec_btn = Button(
|
|
|
+ frame,
|
|
|
+ text='Выполнить',
|
|
|
+ command=callback_exec
|
|
|
+)
|
|
|
+exec_btn.grid(row=9, column=2, padx=4, pady=4)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+window.mainloop()
|