I have several csv file I need to append (vertically). They have different but overlapping headers. For example; file1 headers ['a', 'b', 'c'] file2 headers ['d', 'e'] file3 headers ['c', 'd']
Is there a better way than this import csv def merge_csv(fileList, newFileName): allHeaders = set([]) for afile in fileList: with open(afile, 'rb') as csvfilesin: eachheader = csv.reader(csvfilesin, delimiter=',').next() allHeaders.update(eachheader) print(allHeaders) with open(newFileName, 'wb') as csvfileout: outfile = csv.DictWriter(csvfileout, allHeaders) outfile.writeheader() for afile in fileList: print('***'+afile) with open(afile, 'rb') as csvfilesin: rows = csv.DictReader(csvfilesin, delimiter=',') for r in rows: print(allHeaders.issuperset(r.keys())) outfile.writerow(r) Vincent Davis
-- https://mail.python.org/mailman/listinfo/python-list