09/06/01 23:24:31
>>76
#-*- coding: utf-8 -*-
import os, sys, time, shutil
from math import ceil, log
def rename_to_number(srcdir, ext):
files = filter(lambda x: x[-len(ext):]==ext, os.listdir(srcdir))
tmpdir = os.path.join(srcdir, 'tmp%s_%s' % (os.getpid(), time.time()))
while os.path.exists(tmpdir): tmpdir += '0'
os.mkdir(tmpdir)
for f in files:
src = os.path.join(srcdir, f)
shutil.move(src, tmpdir)
fmt = '%%0%dd%s' % (ceil(log(len(files),10)), ext)
for i, f in enumerate(sorted(files)):
src = os.path.join(tmpdir, f)
dst = os.path.join(srcdir, fmt % i)
shutil.copy(src, dst)
#shutil.rmtree(tmpdir) # この行を有効にすると作業後テンポラリを削除します。
if __name__ == '__main__':
srcdir = sys.argv[1]
ext = sys.argv[2]
if ext[0] != '.': ext = '.' + ext
rename_to_number(srcdir, ext)
# 使い方。このスクリプトを hoge.py と保存(UTF-8)した場合。
# python hoge.py ターゲットディレクトリ 対象拡張子
# と入力