#!/usr/bin/python

import os
import re
import sys


class Filename:
    def __init__(self, filename, prefix, number, suffix):
        self.filename = filename
        self.prefix = prefix
        self.number = number
        self.len_number = len(number)
        self.suffix = suffix

    def new_filename(self, num_zeros):
        return self.prefix + ('0' * num_zeros) + self.number + self.suffix

    def __str__(self):
        return '%s/%s/%d/%s' % (self.prefix, self.number, self.len_number, self.suffix)

    __repr__ = __str__


def main():
    regex = re.compile('^([^0-9]*)([0-9]+)([^0-9]*)')
    filenames = []
    for filename in sys.argv[1:]:
        sys.stderr.write('Considering %s\n' % filename)
        match_obj = regex.match(filename)
        if match_obj is not None:
            filenames.append(Filename(filename, match_obj.group(1), match_obj.group(2), match_obj.group(3)))
        else:
            sys.stderr.write('%s: %s does not fit "The pattern"\n' % (sys.argv[0], filename))

    longest = max(filename.len_number for filename in filenames)

    for filename in filenames:
        if filename.len_number != longest:
            num_zeros = longest - filename.len_number
            new_filename = filename.new_filename(num_zeros)
            sys.stderr.write('%s: Renaming %s to %s\n' % (sys.argv[0], filename.filename, new_filename))
            os.rename(filename.filename, new_filename)


main()