【ファイル操作】ファイル整理ツール サンプルコード
こんな悩みを抱えている人に向けて、Pythonで作れる自動化ツールを解説しています。
ファイル操作のツールについて、こちらの記事で紹介しています。
⇒【ファイル操作】Pythonで作れる自動化ツールの具体例アイデア9選【業務効率化】
本記事では、ファイル整理ツールのサンプルコードを公開しています。
サンプルコードは、自分で作成するのが難しい方や、ツール作成の手間を減らしたい方にお勧めです。ぜひご活用ください。
アイデア「ファイル整理ツール」
概要
指定したフォルダ内のファイルを種類ごとに自動で整理します。
導入メリット
デスクトップやダウンロードフォルダの整理が簡単になります。
ツール機能
ファイルの拡張子に基づいて、ファイルを適切なフォルダに移動します。
必要技術
os:ファイル操作を行う
処理フロー
操作対象のフォルダを選択
フォルダ内のファイルを拡張子ごとに分類
同名のフォルダを作成(存在しない場合)
ファイルを対応するフォルダに移動
注意事項
著作権について
本ソースコードの著作権は、販売者に帰属します。
修正や改変は自由に行えますが、無断での複製、配布は法律で禁止されています。
ライセンスについて
本ソースコードは、個人利用及び商用利用が可能です。ただし、再販売や、本ソースコードを基にした派生作品の販売は禁止します。
返金について
デジタルコンテンツの性質上、購入後の返品や返金は原則として受け付けておりません。
使用上の免責事項
本ソースコードは予告なく変更や修正を行う場合があります。
本ソースコードの動作を保証するものではありません。
本ソースコードの使用から生じたいかなる直接的または間接的な損害に対しても、販売者は責任を負いません。
動作の不具合については、購入者自身の責任で対処してください。
サポートについて
本ソースコードに関するサポートは行っておりません。バグ報告や質問への対応は致しかねます。
ソースコード
import os
def organize_files(directory):
"""
指定されたディレクトリ内のファイルを拡張子ごとに整理します。
重複するファイル名がある場合は自動的にリネームされます。
:param directory: ファイルを整理するディレクトリのパス
"""
# ディレクトリ内の全ファイルとサブディレクトリを取得
for item in os.listdir(directory):
if os.path.isfile(os.path.join(directory, item)):
# ファイル拡張子を取得(先頭のドットを除く)
ext = os.path.splitext(item)[1][1:].lower()
if ext == "":
ext = "Others"
# 拡張子名でフォルダを作成(存在しない場合のみ)
ext_dir = os.path.join(directory, ext)
if not os.path.exists(ext_dir):
os.makedirs(ext_dir)
# 新しいパスを作成
new_path = os.path.join(ext_dir, item)
if os.path.exists(new_path): # 重複ファイルが存在する場合
base, extension = os.path.splitext(item)
# ユニークなファイル名を生成
counter = 1
new_item = f"{base}_{counter}{extension}"
new_path = os.path.join(ext_dir, new_item)
while os.path.exists(new_path):
counter += 1
new_item = f"{base}_{counter}{extension}"
new_path = os.path.join(ext_dir, new_item)
# ファイルを新しいディレクトリに移動
os.rename(os.path.join(directory, item), new_path)
def main():
# ユーザーからディレクトリパスを入力
target_directory = input("整理したいフォルダのパスを入力してください: ")
organize_files(target_directory)
if __name__ == "__main__":
main()
最後まで読んでいただき、ありがとうございました!
参考のなったと思っていただけたら、
♡スキを押していただけると嬉しいです。
今後もサンプルコードを紹介する予定なので、
関心のある方は是非アカウントのフォローをお願いします!
この記事が気に入ったらサポートをしてみませんか?