Among other things, I like python. I quite like the Talk Python to Me podcast, done by Michael Kennedy. He is, among other things, a python trainer. Among his online python training videos is one on parsing csv (comma separated value) files. His example didn’t actually use the python csv module, so I whipped up a couple of examples that used csv.reader and csv.DictReader.
These use python 3.4.
csv.reader example:
#!c:\anaconda3\python.exe '''taken from https://www.youtube.com/watch?v=qajONCIvhEc https://support.spatialkey.com/spatialkey-sample-csv-data/ http://samplecsvs.s3.amazonaws.com/Sacramentorealestatetransactions.csv ''' import csv import os def main(): print("Hello File I/O minicast using csv.reader") filename = os.path.abspath(os.path.join("data", "Sacramentorealestatetransactions.csv")) print(filename) with open(filename, 'r') as csvfile: fin = csv.reader(csvfile, delimiter=',') header = next(fin) print(header) # ['street', 'city', 'zip', 'state', 'beds', 'baths', 'sq\_\_ft', 'type', 'sale_date', 'price', 'latitude', 'longitude'] entries = [] for line in fin: # lines look like # \['3526 HIGH ST', 'SACRAMENTO', '95838', 'CA', '2', '1', '836', 'Residential', 'Wed May 21 [00:00:00](http://www.youtube.com/watch?v=qajONCIvhEc&t=00h00m00s) EDT 2008', '59222', '38.631913', '-121.434879'\] row = dict() for i, h in enumerate(header): row[h] = line[i] entries.append(row) entries.sort(key= lambda r: -1\*int(r['price'])) # Entries are a list of dicts. Each line looks like: # {'street': '9401 BARREL RACER CT', 'state': 'CA', 'sq\_\_ft': '4400', 'city': 'WILTON', 'beds': '4', 'baths': '3', 'sale_date': 'Fri May 16 [00:00:00](http://www.youtube.com/watch?v=qajONCIvhEc&t=00h00m00s) EDT 2008', 'price': '884790', 'longitude': '-121.194858', 'latitude': '38.415298', 'zip': '95693', 'type': 'Residential'} for e in entries\[:5\]: print("{0} beds, {1} baths sold for ${2:,}".format( e['beds'], e['baths'], int(e['price']) )) if *_name_* == '__main__': main() csv.DictReader example:
...