何かを書き留める何か

数学や読んだ本について書く何かです。最近は社会人として生き残りの術を学ぶ日々です。

Pythonによるファイル名一括リネーム

Pythonの習作として。
習作といっても自分で考えたところなど皆無に等しいが。

# -*- coding: UTF-8 -*-

import os
import sys

os.chdir(sys.argv[1])

i = 0

for filename in os.listdir("."):
    os.rename(filename, sys.argv[2]+"{0:03d}".format(i)
              +os.path.splitext(filename)[1])
    i += 1

使い方としては一括リネームしたいファイルが入ったディレクトリと同じところにrename.pyを置いて

python rename.py ./dirname hoge

とすればよい。
するとhoge000.jpg, hoge001.jpg...のようにリネームできる。

(追記:2013年9月5日)
組み込み函数enumerateを用いるとすっきり書けることを知ったので早速使ってみる。

# -*- coding: UTF-8 -*-

import os
import sys

os.chdir(sys.argv[1])

for count,filename in enumerate(os.listdir(".")):
    os.rename(filename, sys.argv[2]+"{0:03d}".format(count)
              +os.path.splitext(filename)[1])

ループ外にカウンタを置かずに済むのがうれしい