Untitled
unknown
python
a year ago
2.5 kB
1
Indexable
Never
import os import tkinter as tk from tkinter import filedialog from tkinter import messagebox # Tạo một cửa sổ tkinter window = tk.Tk() window.title("Chọn thư mục") # Tạo hai biến để lưu loại file và tên thư mục data file_type = tk.StringVar() data_name = tk.StringVar() # Hàm để chọn thư mục và chuyển file theo loại def choose_dir(): # Lấy giá trị của hai biến file_type và data_name ext = file_type.get() name = data_name.get() # Nếu người dùng không nhập loại file hoặc tên thư mục data if not ext or not name: # Hiển thị thông báo lỗi và dừng hàm messagebox.showerror("Lỗi", "Bạn cần nhập loại file và tên thư mục data muốn chuyển") return # Hiển thị hộp thoại chọn thư mục dir = filedialog.askdirectory() # Nếu người dùng chọn một thư mục if dir: # Tạo thư mục data nếu chưa có os.makedirs(os.path.join(dir, name), exist_ok=True) # Duyệt qua tất cả các file trong thư mục và các thư mục con for root, dirs, files in os.walk(dir): # Duyệt qua tất cả các file trong thư mục hiện tại for file in files: # Nếu file có định dạng theo yêu cầu if file.endswith(ext): # Lấy đường dẫn đầy đủ của file src = os.path.join(root, file) # Lấy đường dẫn đầy đủ của thư mục data dst = os.path.join(dir, name, file) # Chuyển file vào thư mục data và ghi đè nếu có trùng tên os.rename(src, dst) # Hiển thị thông báo hoàn thành messagebox.showinfo("Hoàn thành", f"Đã chuyển tất cả các file {ext} vào thư mục {name}") # Tạo các label và entry để nhập loại file và tên thư mục data tk.Label(window, text="Loại file:").grid(row=0, column=0) tk.Entry(window, textvariable=file_type).grid(row=0, column=1) tk.Label(window, text="Tên thư mục data:").grid(row=1, column=0) tk.Entry(window, textvariable=data_name).grid(row=1, column=1) # Tạo nút để chọn thư mục và chuyển file theo loại tk.Button(window, text="Chọn thư mục", command=choose_dir).grid(row=2, columnspan=2) # Chạy giao diện tkinter window.mainloop()