#!/usr/bin/env python # # Author: Martin Matusiak # Licensed under the GNU Public License, version 3. # # revision 1 - support multiple digit runs in filenames import os, string, glob, re, sys def renseq(): if (len(sys.argv) != 2): print "Usage:\t" + sys.argv[0] + " " else: ren_seq_files(sys.argv[1]) def ren_seq_files(num_digits): files = glob.glob("*") for filename in files: m = re.search("(.*)(\..*)", filename) ext = "" if m: (filename, ext) = m.groups() digit_runs = re.finditer("([0-9]+)", filename) spans = [m.span() for m in digit_runs if digit_runs] if spans: spans.reverse() arr = list(filename) for (s, e) in spans: arr[s:e] = string.zfill(str( int(filename[s:e]) ), int(num_digits)) os.rename(filename+ext, "".join(arr)+ext) if __name__ == "__main__": renseq()