#!/usr/bin/python # TYPE:internet # DESC: Psudo-randomly gererates names from US Census lists, if no local namelist is available, it will create one from the lists at www.census.gov. import urllib2 import pickle import random #Parser takes 'dist.all.last', 'dist.male.first', and 'dist.female.first' #from 'http://www.census.gov/genealogy/names/' and parses them as python #lists and uses the pickle module to save them as a file called 'namelist'. def parser(): print print "Attempting to generate namelist:" namefile=open('./namelist', 'w') lastnames = [] malenames = [] femalenames = [] namelist = [] print "Parsing namelists from www.census.gov..." for line in urllib2.urlopen('http://www.census.gov/genealogy/names/dist.all.last', 'r'): lineparts = line.split() lastnames.append(lineparts[0]) line for line in urllib2.urlopen('http://www.census.gov/genealogy/names/dist.male.first', 'r'): lineparts = line.split() malenames.append(lineparts[0]) for line in urllib2.urlopen('http://www.census.gov/genealogy/names/dist.female.first', 'r'): lineparts = line.split() femalenames.append(lineparts[0]) namelist.append(lastnames) namelist.append(malenames) namelist.append(femalenames) print "Done" print "Pickling namelist..." pickle.dump(namelist, namefile) print "Done" #Main Program while True: try: print print "Trying to load namefile:" namefile = open('./namelist', 'r') print "Unpickling namefile..." namelist = pickle.load(namefile) print "Done" break except IOError: print "No namelist!" parser() lastnames = namelist[0] malenames = namelist[1] femalenames = namelist[2] print mnames = input("How many male names?: ") fnames = input("How many female names?: ") print last = random.sample(lastnames, fnames+mnames) male = random.sample(malenames, mnames) female = random.sample(femalenames, fnames) print "Male names:" for i in range(mnames): print male[i].capitalize(), last[i].capitalize() print print "Female names:" for i in range(fnames): print female[i].capitalize(), last[i+mnames].capitalize() print