Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie ein automatisiertes Tool zur Dokumentenorganisation auf Basis von Python

So implementieren Sie ein automatisiertes Tool zur Dokumentenorganisation auf Basis von Python

王林
王林nach vorne
2023-05-13 15:13:251471Durchsuche

Anwendungsszenario

Persönliche Dateiorganisation: Einzelpersonen speichern eine große Anzahl von Fotos, Videos und Dokumentdateien auf ihren Computern. Dieses Programm kann zum Organisieren verwendet werden Diese Dateien sind in verschiedenen Ordnern organisiert und zur einfachen Verwaltung und Suche nach Dateityp klassifiziert.

Batch-Dateiverarbeitung: Alle Dateien in einem Ordner müssen stapelweise verarbeitet werden, z. B. Videodateien in ein bestimmtes Format konvertieren, Bilddateien auf eine bestimmte Größe reduzieren usw.

Datensicherung: Sichern Sie wichtige Daten auf externen Speichergeräten und speichern Sie sie nach Dateitypen, z. B. Sichern von Fotos in einem Ordner, Sichern von Dokumentdateien in einem anderen Ordner usw.

Server-Dateiorganisation: Bei einem Server mit einer großen Anzahl von Dateien können Sie dieses Programm verwenden, um die Dateien zur einfachen Verwaltung und Suche in entsprechenden Ordnern zu organisieren.

Datenbereinigung: Bereinigen Sie unnötige Dateien auf Ihrem Computer, z. B. Bereinigen temporärer Dateien im Download-Ordner, Bereinigen des Papierkorbs usw.

Protokollverarbeitung: Organisieren Sie bestimmte Arten von Protokolldateien zur einfachen Anzeige und Analyse in verschiedenen Ordnern.

Quellcode

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()

Quellcodebeschreibung

In diesem Code haben wir eine wxPython-GUI-Schnittstelle erstellt, einschließlich zwei Schaltflächen und einem Textfeld. Klicken Sie auf die Schaltfläche „Ordner auswählen“, um ein Dialogfeld zur Auswahl der zu organisierenden Ordner zu öffnen. Klicken Sie auf die Schaltfläche „Ordner organisieren“, um mit der Organisation der Ordner zu beginnen.

Zuerst haben wir vier Ordner erstellt: Fotos, Dokumente, Videos, Verknüpfungen. Wenn diese Ordner nicht vorhanden sind, erstellen wir diese Ordner mit der Funktion os.makedirs().

Dann verwenden wir die Funktion os.listdir(), um alle Dateien im Ordner zu durchlaufen. Wenn es sich bei der Datei um eine Datei und nicht um einen Ordner handelt, ermitteln wir die Erweiterung der Datei und verschieben die Datei basierend auf der Erweiterung in den entsprechenden Ordner. Wir verwenden die Funktion Shutil.move(), um die Datei vom ursprünglichen Speicherort an den neuen Speicherort zu verschieben.

Schließlich verwenden wir die Funktion wx.MessageBox(), um nach Abschluss eine Eingabeaufforderungsbox anzuzeigen.

Bitte beachten Sie, dass dieser Code nur Dateien im Verzeichnis der ersten Ebene verarbeiten kann. Wenn Sie Dateien in Unterverzeichnissen verarbeiten müssen, müssen Sie eine rekursive Funktion verwenden.

Der Effekt ist wie folgt

So implementieren Sie ein automatisiertes Tool zur Dokumentenorganisation auf Basis von Python

Das obige ist der detaillierte Inhalt vonSo implementieren Sie ein automatisiertes Tool zur Dokumentenorganisation auf Basis von Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen