Name generator

10 Feb. 2010

Here is a Python snippet that will fetch a Census name file, parse it and generate a list of fake names that look realistic. I needed 2500 names to test a system I'm building and this was handy so I'm sharing.

#!/usr/bin/env python

import urllib
import re

print 'Fetching names from the Census...'
names_list_url = 'http://www.census.gov/genealogy/names/dist.all.last'
names_data = urllib.urlopen(names_list_url).readlines()

print 'Processing Census data'
previous_name = 'John'
for line in names_data:
    m = re.findall('(\w+).*', line)
    if len(m) == 1:
        name = m[0]
        print '%s, %s' % (name.capitalize(), previous_name.capitalize())
        previous_name = name