import codecs
import csv

with open('data.csv', 'wb') as f:
    # Write BOM to the file, it is required
    # Excl without BOM does not understend UTF-8 charcters... (Non ascii characters)
    f.write(codecs.BOM_UTF8)
    # Set excl dialect
    # Delimiter ; is required so columns are detected properly
    writer = csv.writer(f, dialect=csv.excel, delimiter=';')  # Option 1
    dict_writer = csv.DictWriter(f, dialect=csv.excel, delimiter=';', fieldnames=['a', 'b', 'c'])  # Option 2
    
    # Continiue normally