Pythonプログラミング入門・サンプル・チュートリアル

Pythonプログラミング入門・サンプル・チュートリアル

【Pythonプログラミング入門】「退屈なことはPythonにやらせよう」の「9.7.1 選択コピー」の自己回答

はじめに

「退屈なことはPythonにやらせよう」の演習問題「9.7.1 選択コピー」の自己回答です。

import os, shutil


def copyFile(src, dst, ext_list):
    for (dirpath, dirnames, filenames) in os.walk(src):
        for f in filenames:
            root, ext = os.path.splitext(f)

            if ext in ext_list:
                source_path = os.path.join(dirpath, f)
                target_path = os.path.join(dst, f)
                shutil.copy(source_path, target_path)


# コピー元ディレクトリパス
source_dir_path = 'copyDirectory'
# コピー先ディレクトリパス
destination_dir_path = os.path.join(os.getcwd(), 'targetDirectory')
# コピー対象の拡張子リスト
target_ext_list = ['.pdf', '.jpg', '.png']

# コピー実行
copyFile(source_dir_path, destination_dir_path, target_ext_list)

学習書籍