Maison  >  Article  >  développement back-end  >  Comment implémenter un outil automatisé d'organisation de documents basé sur Python

Comment implémenter un outil automatisé d'organisation de documents basé sur Python

王林
王林avant
2023-05-13 15:13:251423parcourir

Scé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

Comment implémenter un outil automatisé dorganisation de documents basé sur Python

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer