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