14.4. CSV Parameters — Python
14.4.1. SetUp
>>> import csv >>> from pprint import pprint
14.4.2. Parametrized Writer
delimiter=','quotechar='"'lineterminator='\n'quoting=csv.QUOTE_ALL
>>> DATA = [ ... ('firstname', 'lastname', 'age'), ... ('Alice', 'Apricot', 30), ... ('Bob', 'Blackthorn', 31), ... ('Carol', 'Corn', 32), ... ('Dave', 'Durian', 33), ... ('Eve', 'Elderberry', 34), ... ('Mallory', 'Melon', 15), ... ] >>> >>> with open('/tmp/myfile.csv', mode='wt', encoding='utf-8') as file: ... writer = csv.writer(file, delimiter=',', quotechar='"', lineterminator='\n', quoting=csv.QUOTE_ALL) ... writer.writerows(DATA)
Result:
>>> print(open('/tmp/myfile.csv').read()) "firstname","lastname","age" "Alice","Apricot","30" "Bob","Blackthorn","31" "Carol","Corn","32" "Dave","Durian","33" "Eve","Elderberry","34" "Mallory","Melon","15"
14.4.3. Parametrized DictWriter
delimiter=','quotechar='"'lineterminator='\n'quoting=csv.QUOTE_ALLcsv.DictWriter(file, fieldnames, delimiter=',', quotechar='"', lineterminator='\n', quoting=csv.QUOTE_ALL)
>>> DATA = [ ... {'firstname': 'Alice', 'lastname': 'Apricot', 'age': 30}, ... {'firstname': 'Bob', 'lastname': 'Blackthorn', 'age': 31}, ... {'firstname': 'Carol', 'lastname': 'Corn', 'age': 32}, ... {'firstname': 'Dave', 'lastname': 'Durian', 'age': 33}, ... {'firstname': 'Eve', 'lastname': 'Elderberry', 'age': 34}, ... {'firstname': 'Mallory', 'lastname': 'Melon', 'age': 15}, ... ] >>> >>> >>> fieldnames = sorted(set(str(key) for row in DATA for key in row.keys())) >>> >>> with open('/tmp/myfile.csv', mode='wt', encoding='utf-8') as file: ... result = csv.DictWriter(file, fieldnames, delimiter=',', quotechar='"', lineterminator='\n', quoting=csv.QUOTE_ALL) ... result.writeheader() ... result.writerows(DATA) 29
Result:
>>> print(open('/tmp/myfile.csv').read()) "age","firstname","lastname" "30","Alice","Apricot" "31","Bob","Blackthorn" "32","Carol","Corn" "33","Dave","Durian" "34","Eve","Elderberry" "15","Mallory","Melon"
14.4.4. Parametrized Reader
Data:
$ cat /tmp/myfile.csv "firstname","lastname","age" "Alice","Apricot","30" "Bob","Blackthorn","31" "Carol","Corn","32" "Dave","Durian","33" "Eve","Elderberry","34" "Mallory","Melon","15"
Usage:
>>> with open('/tmp/myfile.csv', mode='rt') as file: ... reader = csv.reader(file, delimiter=',', quoting=csv.QUOTE_ALL, quotechar='"', lineterminator='\n') ... result = list(reader)
Result:
>>> pprint(result) [['firstname', 'lastname', 'age'], ['Alice', 'Apricot', '30'], ['Bob', 'Blackthorn', '31'], ['Carol', 'Corn', '32'], ['Dave', 'Durian', '33'], ['Eve', 'Elderberry', '34'], ['Mallory', 'Melon', '15']]
14.4.5. Parametrized DictReader
Data:
$ cat /tmp/myfile.csv "firstname","lastname","age" "Alice","Apricot","30" "Bob","Blackthorn","31" "Carol","Corn","32" "Dave","Durian","33" "Eve","Elderberry","34" "Mallory","Melon","15"
Usage:
>>> with open('/tmp/myfile.csv', mode='rt', encoding='utf-8') as file: ... reader = csv.DictReader(file, delimiter=',', quoting=csv.QUOTE_ALL, quotechar='"', lineterminator='\n') ... result = list(reader)
Result:
>>> pprint(result, sort_dicts=False) [{'firstname': 'Alice', 'lastname': 'Apricot', 'age': '30'}, {'firstname': 'Bob', 'lastname': 'Blackthorn', 'age': '31'}, {'firstname': 'Carol', 'lastname': 'Corn', 'age': '32'}, {'firstname': 'Dave', 'lastname': 'Durian', 'age': '33'}, {'firstname': 'Eve', 'lastname': 'Elderberry', 'age': '34'}, {'firstname': 'Mallory', 'lastname': 'Melon', 'age': '15'}]