Pythonを使用しフォルダ内のファイルを整理する

スポンサーリンク

Pythonを使用しフォルダ内のファイルを整理してみます。

参考URL:https://python.plainenglish.io/organize-files-with-lazy-man-and-python-1521ec482a70

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

フォルダを作成とファイルの用意

Pythonを用いてフォルダ内のファイルを整理してみますが、まずはフォルダを作成とファイルの用意します。

今回は、「C:\」内に「test_d」というフォルダを作成し、その中に様々なファイルを用意しました。

■フォルダ内のファイルを整理する

フォルダの作成と整理するファイルの用意ができましたので、フォルダ内のファイルを整理するスクリプトを書いていきます。

■コード

import os
from pathlib import Path

Sub_dir = {
    "Document":[".pdf",".docx",".txt"],
    "Audio":[".m4a",".m4b",".mp3"],
    "Images":[".jpg",".jpeg",".png"]
}

def dir_pick(value):
    for category,extension in Sub_dir.items():
        for suffix in extension:
            if suffix == value:
                return category

def dir_o():
    for item in os.scandir():
        if item.is_dir():
            continue

        filePath = Path(item)
        fileType = filePath.suffix.lower()
        directory = dir_pick(fileType)

        if directory == None:
            continue

        directoryPath = Path(directory)

        if directoryPath.is_dir() != True:
            directoryPath.mkdir()

        filePath.rename(directoryPath.joinpath(filePath))   

dir_o()

importでosモジュール、「from import」 pathlibモジュールのPathを呼び出します。

その後、Sub_dirというリストを定義し、整理するためにファイルカテゴリを定義します。リストは、波括弧”{ }”で辞書形式で定義します。

定義後、dir_pickという関数をdef文を用いて定義し、ファイルの拡張子からカテゴリの名前を選び、カテゴリを返します。

次に、dir_oという関数をdef文を用いて定義し、ディレクトリ内の全てのファイルをスキャンし、ファイルの全ての拡張子を確認。確認後、dir_pick()関数の呼び出しから確認したファイルを正確なカテゴリに移動します。

最後に、dir_o()関数を呼び出すために、dir_o()を記述します。これでスクリプトが実行となります。

■実行・検証

このスクリプトを「file_organize.py」という名前で、今回した作成した「C:\test_d(フォルダパス)」内に保存し、コマンドプロンプトを起動します。起動後、cdコマンドで「C:\test_d(フォルダパス)」内に移動し、実行してみます。

実行してみると、スクリプト内でSub_dirというリストを定義し、ファイルを整理するためにファイルカテゴリを定義しましたが、カテゴリのフォルダが作成され、ファイルの拡張子でフォルダへの移動が振り分けられていることが確認できました。とても便利なスクリプトであり、作成された方に感謝。

コメント

タイトルとURLをコピーしました