""" задача: есть папка с 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()