Advertisement
Guest User

Randomize Roles

a guest
Jun 15th, 2015
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.51 KB | None | 0 0
  1. import argparse
  2. from random import shuffle
  3.  
  4.  
  5. def randomize_roles(names, roles, outputName):
  6.     print u'Shuffling roles...'
  7.     shuffle(roles)
  8.     with open(outputName, 'w') as outputFile:
  9.         for name, role in zip(names, roles):
  10.             line = u'{name} the {role}'.format(name=name, role=role)
  11.             print line
  12.             outputFile.write(line + u'\n')
  13.  
  14. def get_names_and_roles(namesFile, rolesFile):
  15.     roleList, nameList = [], []
  16.     with open(rolesFile, 'r') as roles, open(namesFile, 'r') as names:
  17.         for name in names:
  18.             role = roles.readline().strip()
  19.             name = name.strip()
  20.             nameList.append(name)
  21.             roleList.append(role)
  22.     return nameList, roleList
  23.  
  24. if  __name__ == "__main__":
  25.     parser = argparse.ArgumentParser()
  26.     parser.add_argument("--namesFile", default="names.txt", help="Name of the file containing list of players. Each new line must contain only the name of a player. default: %(default)s")
  27.     parser.add_argument("--rolesFile", default="roles.txt", help="Name of the file containing the list of roles. This file must contain the same number of lines as nameFile. default: %(default)s")
  28.     parser.add_argument("--outputFile", default="assignment.txt", help="Name of the output file. Will be created if it does not exist. Overwritten if it does exist. default: %(default)s")
  29.     args = parser.parse_args()
  30.     names, roles = get_names_and_roles(args.namesFile, args.rolesFile)
  31.     randomize_roles(names, roles, args.outputFile)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement