Začiatočník
Hľadáte efektívny spôsob, ako zistiť, ktoré priečinky na vašom disku zaberajú najviac miesta? Analýza priečinkov v Python GUI je presne to, čo potrebujete! Predstavujeme vám Analýzu veľkosti priečinkov, jednoduchú GUI aplikáciu vytvorenú v Pythone s moderným vzhľadom, ktorá vám umožní prehľad o veľkostiach priečinkov a súborov na vašom disku.
Hlavné funkcie:
- Prehľadná analýza:
- Aplikácia zobrazí názvy priečinkov a ich veľkosť (v MB) v prehľadnej tabuľke.
- Možnosť triedenia:
- Kliknutím na hlavičku stĺpca môžete údaje jednoducho zotriediť podľa názvu priečinka alebo veľkosti.
- Real-time skenovanie:
- Aplikácia umožňuje sledovať priebeh analýzy pomocou progress baru, ktorý zobrazuje stav skenovania v reálnom čase.
- Moderný dizajn:
- Program využíva moderný vzhľad vďaka knižnici ttkbootstrap, čo zabezpečuje estetický a intuitívny používateľský zážitok.
- Podpora veľkých priečinkov:
- Efektívne spracovanie údajov umožňuje pracovať aj s veľkými adresármi bez zamŕzania aplikácie.
Ako to funguje?
- Výber priečinka:
- Vyberte priečinok, ktorý chcete analyzovať, pomocou tlačidla „Vybrať priečinok“.
- Analýza priečinkov:
- Aplikácia prehľadá všetky podpriečinky a zobrazí ich veľkosť.
- Zobrazenie výsledkov:
- Výsledky sa zobrazia v tabuľke, kde môžete kliknutím na stĺpce údaje triediť.
Pre koho je určený?
- Bežní používatelia: Rýchly prehľad o veľkosti priečinkov a jednoduché čistenie disku.
- IT administrátori: Nástroj na identifikáciu veľkých priečinkov a optimalizáciu priestoru na diskoch.
Technické detaily:
- Programovací jazyk: Python
- Použité knižnice:
tkinter,ttkbootstrap - Dizajn: Moderné a intuitívne rozhranie s podporou triedenia a scrollovania.
Vyskúšajte tento užitočný nástroj a majte svoje disky vždy pod kontrolou! Ak máte ďalšie nápady na funkcie alebo vylepšenia, rád ich zapracujem. 😊
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
import os import subprocess import sys import threading from tkinter import Tk, Label, Button, filedialog, messagebox, ttk # Overenie a inštalácia ttkbootstrap, ak nie je nainštalované try: import ttkbootstrap as tb except ImportError: response = messagebox.askyesno("Chýbajúca knižnica", "Knižnica 'ttkbootstrap' nie je nainštalovaná. Chcete ju teraz nainštalovať?") if response: subprocess.check_call([sys.executable, "-m", "pip", "install", "ttkbootstrap"]) import ttkbootstrap as tb else: messagebox.showerror("Chýbajúca knižnica", "Aplikácia nemôže pokračovať bez knižnice 'ttkbootstrap'. Ukončuje sa.") sys.exit() class FolderSizeAnalyzer: def __init__(self, root): self.root = root self.root.title("Analýza veľkosti priečinkov") self.root.geometry("620x500") # Nadpis aplikácie self.title_label = Label(root, text="Analýza veľkosti priečinkov", font=("Segoe UI", 16, "bold")) self.title_label.pack(pady=10) # Tlačidlo na výber priečinka self.select_button = tb.Button(root, text="Vybrať priečinok", bootstyle="primary", command=self.select_folder) self.select_button.pack(pady=10) # Rám na stromovú štruktúru a scrollbar self.tree_frame = ttk.Frame(root) self.tree_frame.pack(pady=10, fill="both", expand=True) # Stromová štruktúra na zobrazenie veľkostí self.tree = ttk.Treeview(self.tree_frame, columns=("Name", "Size"), show="headings", height=15) self.tree.heading("Name", text="Názov", command=lambda: self.sort_tree("Name", False)) self.tree.heading("Size", text="Veľkosť (MB)", command=lambda: self.sort_tree("Size", False)) self.tree.column("Name", width=300) self.tree.column("Size", width=100, anchor="center") self.tree.pack(side="left", fill="both", expand=True) # Scrollbar pre stromovú štruktúru self.scrollbar = ttk.Scrollbar(self.tree_frame, orient="vertical", command=self.tree.yview) self.tree.configure(yscrollcommand=self.scrollbar.set) self.scrollbar.pack(side="right", fill="y") # Štítok pre zobrazenie aktuálne vybraného priečinka self.folder_label = Label(root, text="Vybraný priečinok: -", font=("Segoe UI", 10)) self.folder_label.pack(pady=10) # Progress bar self.progress_bar = tb.Progressbar(root, orient="horizontal", length=500, mode="determinate", bootstyle="info") self.progress_bar.pack(pady=10) def select_folder(self): folder_path = filedialog.askdirectory() if not folder_path: messagebox.showwarning("Upozornenie", "Neboli vybrané žiadne priečinky.") return self.folder_label.config(text=f"Vybraný priečinok: {folder_path}") threading.Thread(target=self.analyze_folder, args=(folder_path,), daemon=True).start() def analyze_folder(self, folder_path): self.tree.delete(*self.tree.get_children()) # Získanie celkového počtu priečinkov a súborov pre progress bar total_items = sum(len(dirs) + len(files) for _, dirs, files in os.walk(folder_path)) self.progress_bar["maximum"] = total_items self.progress_bar["value"] = 0 try: for root, dirs, files in os.walk(folder_path): folder_size = sum(os.path.getsize(os.path.join(root, file)) for file in files) folder_size_mb = round(folder_size / (1024 * 1024), 2) folder_name = os.path.basename(root) or root self.tree.insert("", "end", values=(folder_name, folder_size_mb)) # Aktualizácia progress baru self.progress_bar["value"] += len(files) + len(dirs) self.root.update_idletasks() except Exception as e: messagebox.showerror("Chyba", f"Pri analýze priečinka došlo k chybe: {e}") def sort_tree(self, col, descending): data = [(self.tree.set(child, col), child) for child in self.tree.get_children()] if col == "Size": data.sort(key=lambda x: float(x[0]) if x[0] else 0, reverse=descending) else: data.sort(reverse=descending) for index, (_, child) in enumerate(data): self.tree.move(child, "", index) self.tree.heading(col, command=lambda: self.sort_tree(col, not descending)) if __name__ == "__main__": app = tb.Window(themename="superhero") # Moderný bootstrap štýl analyzer = FolderSizeAnalyzer(app) app.mainloop() |






