Created
September 8, 2020 17:18
-
-
Save YSRKEN/15ff4bcbe8f690b1d29a9fac54c96a00 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import pathlib | |
import shutil | |
from typing import List, Tuple | |
def search_extra_file_list(image_directory_path_str: str, image_file_ext: str, raw_file_ext: str)\ | |
-> Tuple[List[str], List[str]]: | |
# 画像ファイルのファイル名一覧、およびRAWファイルのファイル名一覧を取得する | |
image_directory_path = pathlib.Path(image_directory_path_str) | |
image_file_list = [x.name for x in image_directory_path.glob(f'*{image_file_ext}')] | |
raw_file_list = [x.name for x in image_directory_path.glob(f'*{raw_file_ext}')] | |
# それぞれのファイル名一覧から、それぞれ拡張子を取り除いたsetを用意し、突き合わせることで「余分なファイル」を洗い出す | |
image_file_name_set = {os.path.splitext(x)[0] for x in image_file_list} | |
raw_file_name_set = {os.path.splitext(x)[0] for x in raw_file_list} | |
image_file_name_set_2 = image_file_name_set - raw_file_name_set # 画像ファイルはあるがRAWファイルが無いもの | |
raw_file_name_set_2 = raw_file_name_set - image_file_name_set # RAWファイルはあるが画像ファイルが無いもの | |
# 出力用データを作成する | |
image_file_list_2 = [f'{x}{image_file_ext}' for x in image_file_name_set_2] | |
raw_file_list_2 = [f'{x}{raw_file_ext}' for x in raw_file_name_set_2] | |
return image_file_list_2, raw_file_list_2 | |
if __name__ == '__main__': | |
# 処理を行うディレクトリのパス | |
IMAGE_DIRECTORY_PATH = 'H:/100OLYMP_M1mk2' | |
# 画像ファイル・RAWファイルの拡張子 | |
IMAGE_FILE_EXT = '.jpg' | |
RAW_FILE_EXT = '.orf' | |
# 移動対象とするファイル一覧を作成する | |
extra_image_list, extra_raw_list = search_extra_file_list(IMAGE_DIRECTORY_PATH, IMAGE_FILE_EXT, RAW_FILE_EXT) | |
# ファイルを移動させる | |
image_directory = pathlib.Path(IMAGE_DIRECTORY_PATH) | |
output_path = image_directory / 'Extra_Files' | |
output_path.mkdir(exist_ok=True) | |
for file_name in extra_image_list + extra_raw_list: | |
shutil.move(str(image_directory / file_name), output_path) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment