#! /usr/bin/env python # Given address book CSV data with display name values in the format of # "Firstname Lastname", change to "Lastname, Firstname". import csv, StringIO data = '''"First Name","Last Name","Display Name" "James","Kirk","James Kirk" "Spock","","Spock" "Leonard","McCoy","Leonard McCoy"''' inf = ('First Name','Last Name','Display Name') i = StringIO.StringIO(data) r = csv.DictReader(i, inf) o = StringIO.StringIO() w = csv.DictWriter(o, inf) def main(): for row in r: if row['Display Name'] == 'Display Name': pass else: if len(row['Last Name']) > 0: s = '%s, %s' % (row['Last Name'], row['First Name']) row['Display Name'] = s w.writerow(row) print o.getvalue() if __name__ == '__main__': main()