import os import sys import string import ntpath target_directory = sys.argv[1] max_files = 250 fileLists = {} fileLists['NUM'] = [] for letter in string.ascii_uppercase: fileLists[letter] = [] for rom_file in os.listdir(target_directory): baseName = ntpath.basename(rom_file) if baseName[0:1].isdigit(): fileLists['NUM'].append(target_directory + '\\' + rom_file) else: fileLists[baseName[0].upper()].append(target_directory + '\\' + rom_file) for letter, fileList in fileLists.items(): count = 0 dir_number = 1 for rom_file in fileList: dir_name = "%s\\%s%d" % (letter, letter, dir_number) if count == 0: os.makedirs(dir_name) new_path = "%s\\%s" % (dir_name, ntpath.basename(rom_file)) print "Moved %s -> %s" % (rom_file, new_path) os.rename(rom_file, new_path) count = count + 1 if count == max_files: count = 0 dir_number = dir_number + 1