stmtkブログ

Python中心の技術ブログです。

【Python】特定のファイルを収集する

機能

特定のファイルを収集するPythonプログラムです。

例えば、以下のコマンドを実行するとinputフォルダ配下にあるテキストファイル(.txt)をoutputフォルダにコピーします。

サブフォルダも検索対象です。

python file_collecter.py .txt input output

サンプル動画

youtu.be

プログラム

#! Python3
# 機能
#  特定のファイルを収集する
# 使い方
#  1.Pythonを実行する
# 実行コマンド
#  python file_collecter.py キーワード 検索パス 出力パス
#  python file_collecter.py .txt input output
#  python file_collecter.py test input output

import os
import sys
import shutil

# 特定のファイルを収集する関数
def collect_file(keyword, search_path, output_path):
    os.makedirs(output_path, exist_ok=True)

    # サブフォルダも含めて検索する
    for folder_name, _, file_names in os.walk(search_path):
        for file_name in file_names:
            # キーワードが含まれないファイルは対象外
            if keyword.lower() not in file_name.lower():
                continue

            # 対象ファイルを出力パスにコピーする
            file_path = os.path.join(folder_name, file_name)
            print("Copying {}...".format(file_path))
            shutil.copy(file_path, output_path)


if len(sys.argv) != 4:
    sys.exit("使い方:python file_collecter.py キーワード 検索パス 出力パス")

collect_file(sys.argv[1], sys.argv[2], sys.argv[3])

使い方

  1. Pythonを実行する

実行コマンド

python file_collecter.py キーワード 検索パス 出力パス
python file_collecter.py .txt input output
python file_collecter.py test input output

参考文献

www.oreilly.co.jp