末尾に連番が付いているファイルを連番を無視した名称でディレクトリに振り分けるスクリプト
a01.jpg
a02.jpg
a03.jpg
b01.jpg
b02.jpg
というファイルがあるときに
a
b
というディレクトリを作成して振り分けるスクリプト。
os, sys, shutilの練習。
#!/usr/bin/env python import os import sys import shutil def get_fn_set(target_dir_name): file_names = os.listdir(target_dir_name) fn_set = set() for file_name in file_names: if not file_name.endswith('.jpg'): continue # 末尾2桁を無視するのでセグメントは6 segment = -6 fn_set.add(file_name[0:segment]) return fn_set def move_to_uniq_dir(target_dir_name, fn_set): file_names = os.listdir(target_dir_name) os.chdir(target_dir_name) for uniq_fn in fn_set: if uniq_fn == '': continue os.mkdir(uniq_fn) for file_name in file_names: if file_name.startswith(uniq_fn): shutil.move(file_name, uniq_fn) if __name__ == '__main__': fn_set = get_fn_set(sys.argv[1]) move_to_uniq_dir(sys.argv[1], fn_set)