import re

regex = "[0-9]{5,5}"



def fixzip(z,result) :
   """This function takes a potential zip code string (z) and the list of resultant
      zip codes.  It determines if z represents a valid zip code or not and, if it
         does, it adds the actual zip code (5 digit) to result.
   """
   result.append(z)


def output(otf,zips) :
   zips.sort();
   prior = ""
   count = 0
   for z in zips :
      if z == prior :
           count += 1
      else :
         if count > 0 :
            otf.write(str(prior) + "," + str(count) + "\n")
         count = 1
         prior = z

   if count > 0 :
      otf.write(str(prior) + "," + str(count) + "\n")



f = open("/home/spr/zips2010/spr.scan.txt");
f1 = open("/home/spr/zips2010/python.out","w");




a = f.read();

p = re.compile(regex);
m = re.findall(p,a)
r = []
for x in m :
   fixzip(x,r)


print(len(r))

output(f1,r)

f1.close()




