#!/usr/bin/python # Consolidate.py # 2005 FEB 16 . ccr # 2005 MAR 14 . ccr . Select by state. # Consolidate csv files by year into a series. Takes one parameter: a state code. import sys ZERO=0 SPACE=' ' NULL='' NUL='\x00' NA=-1 FILES=[ 'FARS83', 'FARS84', 'FARS85', 'FARS86', 'FARS87', 'FARS88', 'FARS89', 'FARS90', 'FARS91', 'FARS92', 'FARS93', 'FARS94', 'FARS95', 'FARS96', 'FARS97', 'FARS98', 'FARS99', 'FARS00', 'FARS01', 'FARS02', 'FARS03', ] STATE=sys.argv[1] __Output=sys.stdout __Years={} __YearList=[] __ItemList=[] for __FileName in FILES: __Input=file(__FileName+'.csv','r') __Line=__Input.readline()[:-1] __YearLit=__Line.split(',')[2] __Year=__Years.setdefault(__YearLit,{}) __YearList.append(__YearLit) __Line=__Input.readline()[:-1] while __Line!=NULL: (__State,__Label,__Value)=__Line.split(',') if __State==STATE: __Year[__Label]=__Value if __ItemList.count(__Label)==ZERO: __ItemList.append(__Label) __Line=__Input.readline()[:-1] __Input.close() __Output.write('"Year"') for __Year in __YearList: __Output.write(',') __Output.write(__Year) __Output.write('\n') for __Label in __ItemList: __Output.write(__Label) for __Year in __YearList: __Output.write(',') __Output.write(__Years[__Year][__Label]) __Output.write('\n') # Fin