手を解放: ドキュメント作成を自動化

目次

プライマー:

アプリケーションシナリオ:

ソースコード:

ソースコードの説明:

効果は次のとおりです。


ファイルをタイプごとにフォルダーに移動.py

プライマー:

        たとえば、コンピュータ上に多数の写真、ビデオ、ドキュメント ファイルを保存している場合がありますが、これらのファイルはさまざまなフォルダに分散しており、管理や検索が難しい場合があります。プログラムはこれらのファイルをファイルの種類に応じて異なるフォルダーに整理できるため、これらのファイルがより整理され、見つけやすくなります。

さらに、このプログラムは、フォルダー内のすべてのビデオ ファイルを特定の形式に変換したり、フォルダー内のすべての画像ファイルを特定のサイズに縮小したりするなど、ファイルのバッチ処理にも使用できます。

全体として、このプログラムはユーザーがコンピュータ内のファイルを管理および整理するのに役立ち、作業効率と整理整頓を向上させます。

アプリケーションシナリオ:

  1. 個人ファイルの整理: 個人は、コンピュータ上に多数の写真、ビデオ、ドキュメント ファイルを保存しており、これらのファイルはさまざまなフォルダに分散している場合があります。このプログラムは、これらのファイルをさまざまなフォルダに整理し、ファイルの種類ごとに分類して、管理と検索を容易にすることができます。 。
  2. バッチ ファイル処理: ビデオ ファイルを特定の形式に変換したり、画像ファイルを特定のサイズに縮小したりするなど、フォルダー内のすべてのファイルをバッチで処理する必要があります。
  3. データのバックアップ: 重要なデータを外部記憶装置にバックアップし、写真を 1 つのフォルダーにバックアップする、ドキュメント ファイルを別のフォルダーにバックアップするなど、ファイルの種類に応じて保存します。
  4. サーバー ファイルの整理: 多数のファイルがあるサーバーの場合、このプログラムはファイルを対応するフォルダーに整理し、管理と検索を容易にします。
  5. データのクリーンアップ: ダウンロード フォルダー内の一時ファイルのクリーンアップ、ゴミ箱のクリーンアップなど、コンピューター上の不要なファイルをクリーンアップします。
  6. ログ処理: 特定の種類のログ ファイルを異なるフォルダーに整理して、簡単に表示および分析できるようにします。


ソースコード:

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

ソースコードの説明:

このコードでは、2 つのボタンとテキスト ボックスを含む wxPython GUI インターフェイスを作成します。「フォルダの選択」ボタンをクリックすると、整理するフォルダを選択するダイアログボックスが表示されます。「フォルダの整理」ボタンをクリックすると、フォルダの整理が開始されます。

  • まず、写真、ドキュメント、ビデオ、ショートカットの 4 つのフォルダーを作成しました。これらのフォルダーが存在しない場合は、os.makedirs() 関数を使用して作成します。
  • 次に、os.listdir() 関数を使用して、フォルダー内のすべてのファイルを反復処理します。ファイルがフォルダーではなくファイルである場合は、ファイルの拡張子を取得し、拡張子に基づいてファイルを適切なフォルダーに移動します。shutil.move() 関数を使用して、ファイルを元の場所から新しい場所に移動します。
  • 最後に、wx.MessageBox() 関数を使用して、並べ替え後にプロンプ​​ト ボックスをポップアップ表示します。

このコードは、第 1 レベルのディレクトリ内のファイルのみを処理できることに注意してください。サブディレクトリ内のファイルを処理する必要がある場合は、再帰関数を使用してそれを実現する必要があります。

効果は次のとおりです。

おすすめ

転載: blog.csdn.net/winniezhang/article/details/130280114