


Comment implémenter un outil automatisé d'organisation de documents basé sur Python
May 13, 2023 pm 03:13 PMScénario d'application
Organisation des fichiers personnels : Les particuliers stockent un grand nombre de photos, vidéos et fichiers de documents sur leur ordinateur. Ces fichiers peuvent être dispersés dans différents dossiers. ces fichiers sont organisés dans différents dossiers et classés selon le type de fichier pour une gestion et une recherche faciles.
Traitement des fichiers par lots : tous les fichiers d'un dossier doivent être traités par lots, comme la conversion de fichiers vidéo à un format spécifique, la réduction de fichiers image à une taille spécifique, etc.
Sauvegarde des données : sauvegardez les données importantes sur des périphériques de stockage externes et stockez-les en fonction des types de fichiers, comme la sauvegarde de photos dans un dossier, la sauvegarde de fichiers de documents dans un autre dossier, etc.
Organisation des fichiers du serveur : Pour un serveur contenant un grand nombre de fichiers, vous pouvez utiliser ce programme pour organiser les fichiers dans des dossiers correspondants pour une gestion et une recherche faciles.
Nettoyage des données : nettoyez les fichiers inutiles sur votre ordinateur, comme le nettoyage des fichiers temporaires dans le dossier de téléchargement, le nettoyage de la corbeille, etc.
Traitement des journaux : organisez des types spécifiques de fichiers journaux dans différents dossiers pour une visualisation et une analyse faciles.
Code source
import os import shutil import wx class FileOrganizer(wx.Frame): def __init__(self, parent, title): super(FileOrganizer, self).__init__(parent, title=title, size=(500, 300)) panel = wx.Panel(self) self.current_dir = os.getcwd() # 创建按钮用来选择文件夹 select_folder_btn = wx.Button(panel, label="选择文件夹", pos=(10, 10)) select_folder_btn.Bind(wx.EVT_BUTTON, self.on_select_folder) # 创建按钮用来开始整理文件夹 organize_btn = wx.Button(panel, label="整理文件夹", pos=(10, 50)) organize_btn.Bind(wx.EVT_BUTTON, self.on_organize) # 创建文本框显示当前文件夹路径 self.dir_text = wx.StaticText(panel, label=self.current_dir, pos=(10, 100)) self.Show() def on_select_folder(self, event): dlg = wx.DirDialog(self, "选择文件夹", style=wx.DD_DEFAULT_STYLE) if dlg.ShowModal() == wx.ID_OK: self.current_dir = dlg.GetPath() self.dir_text.SetLabel(self.current_dir) dlg.Destroy() def on_organize(self, event): # 创建文件夹 photos_dir = os.path.join(self.current_dir, "photos") if not os.path.exists(photos_dir): os.makedirs(photos_dir) documents_dir = os.path.join(self.current_dir, "documents") if not os.path.exists(documents_dir): os.makedirs(documents_dir) videos_dir = os.path.join(self.current_dir, "videos") if not os.path.exists(videos_dir): os.makedirs(videos_dir) shortcuts_dir = os.path.join(self.current_dir, "shortcuts") if not os.path.exists(shortcuts_dir): os.makedirs(shortcuts_dir) # 遍历文件夹 for filename in os.listdir(self.current_dir): filepath = os.path.join(self.current_dir, filename) if os.path.isfile(filepath): ext = os.path.splitext(filename)[1].lower() if ext in (".jpg", ".jpeg", ".png", ".gif"): shutil.move(filepath, os.path.join(photos_dir, filename)) elif ext in (".doc", ".docx", ".pdf", ".txt"): shutil.move(filepath, os.path.join(documents_dir, filename)) elif ext in (".mp4", ".avi", ".mov", ".wmv"): shutil.move(filepath, os.path.join(videos_dir, filename)) elif ext == ".lnk": shutil.move(filepath, os.path.join(shortcuts_dir, filename)) wx.MessageBox("文件夹整理完成!", "提示", wx.OK | wx.ICON_INFORMATION) if __name__ == "__main__": app = wx.App() FileOrganizer(None, title="文件整理工具") app.MainLoop()
Description du code source
Dans ce code, nous avons créé une interface graphique wxPython, comprenant deux boutons et une zone de texte. Cliquez sur le bouton "Sélectionner un dossier" pour faire apparaître une boîte de dialogue permettant de sélectionner les dossiers qui doivent être organisés. Cliquez sur le bouton "Organiser les dossiers" pour commencer à organiser les dossiers.
Tout d'abord, nous avons créé quatre dossiers : photos, documents, vidéos, raccourcis. Si ces dossiers n'existent pas, nous créons ces dossiers à l'aide de la fonction os.makedirs().
Ensuite, nous utilisons la fonction os.listdir() pour parcourir tous les fichiers du dossier. Si le fichier est un fichier plutôt qu'un dossier, nous obtenons l'extension du fichier et déplaçons le fichier vers le dossier approprié en fonction de l'extension. Nous utilisons la fonction Shutil.move() pour déplacer le fichier de l'emplacement d'origine vers le nouvel emplacement.
Enfin, nous utilisons la fonction wx.MessageBox() pour faire apparaître une boîte de dialogue après avoir terminé.
Veuillez noter que ce code ne peut traiter que les fichiers du répertoire de premier niveau. Si vous devez traiter des fichiers dans des sous-répertoires, vous devez utiliser une fonction récursive.
L'effet est le suivant
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quels sont les avantages et les inconvénients des modèles ?

Google AI annonce Gemini 1.5 Pro et Gemma 2 pour les développeurs

Pour seulement 250$, le directeur technique de Hugging Face vous apprend étape par étape comment peaufiner Llama 3

Partagez plusieurs frameworks de projets open source .NET liés à l'IA et au LLM

Un guide complet sur le débogage et l'analyse des fonctions Golang

Comment enregistrer la fonction d'évaluation
