Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan alat organisasi dokumen automatik berdasarkan Python

Bagaimana untuk melaksanakan alat organisasi dokumen automatik berdasarkan Python

王林
王林ke hadapan
2023-05-13 15:13:251424semak imbas

Senario aplikasi

Organisasi fail peribadi: Individu menyimpan sejumlah besar foto, video dan fail dokumen pada komputer mereka Fail ini mungkin berselerak dalam folder yang berbeza folder dan dikelaskan mengikut jenis fail untuk pengurusan dan carian yang mudah.

Pemprosesan fail kelompok: Semua fail dalam folder perlu diproses secara berkelompok, seperti menukar fail video kepada format tertentu, mengurangkan fail imej kepada saiz tertentu, dsb.

Sandaran data: Sandarkan data penting ke peranti storan luaran dan simpannya mengikut jenis fail, seperti menyandarkan foto ke satu folder, menyandarkan fail dokumen ke folder lain, dsb.

Organisasi fail pelayan: Untuk pelayan yang mengandungi sejumlah besar fail, anda boleh menggunakan program ini untuk menyusun fail ke dalam folder yang sepadan untuk pengurusan dan carian yang mudah.

Pembersihan Data: Bersihkan fail yang tidak diperlukan pada komputer anda, seperti membersihkan fail sementara dalam folder muat turun, membersihkan sampah, dsb.

Pemprosesan log: Susun jenis fail log tertentu ke dalam folder berbeza untuk tontonan dan analisis yang mudah.

Kod sumber

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

Perihalan kod sumber

Dalam kod ini, kami mencipta antara muka GUI wxPython, termasuk dua butang dan kotak teks. Klik butang "Pilih Folder" untuk muncul kotak dialog untuk memilih folder yang perlu disusun Klik butang "Atur Folder" untuk mula menyusun folder.

Mula-mula, kami mencipta empat folder: foto, dokumen, video, pintasan. Jika folder ini tidak wujud, kami mencipta folder ini menggunakan fungsi os.makedirs().

Kemudian, kami menggunakan fungsi os.listdir() untuk beralih melalui semua fail dalam folder. Jika fail adalah fail dan bukannya folder, kami mendapat sambungan fail dan mengalihkan fail ke folder yang sesuai berdasarkan sambungan. Kami menggunakan fungsi shutil.move() untuk mengalihkan fail dari lokasi asal ke lokasi baharu.

Akhir sekali, kami menggunakan fungsi wx.MessageBox() untuk muncul kotak gesaan selepas selesai.

Sila ambil perhatian bahawa kod ini hanya boleh memproses fail dalam direktori peringkat pertama Jika anda perlu memproses fail dalam subdirektori, anda perlu menggunakan fungsi rekursif.

Kesannya adalah seperti berikut

Bagaimana untuk melaksanakan alat organisasi dokumen automatik berdasarkan Python

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan alat organisasi dokumen automatik berdasarkan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam