import csv sniff_range = 4096 delimiters = ';\t,' infile_name = 'blabla.csv' sniffer = csv.Sniffer() print 'Reading file: %s' % infile_name with open(infile_name, 'r') as infile: # Determine dialect dialect = sniffer.sniff( infile.read(sniff_range), delimiters=delimiters ) infile.seek(0) # Sniff for header has_header = sniffer.has_header(infile.read(sniff_range)) infile.seek(0) reader = csv.reader(infile, dialect)