¿Puedo importar un archivo CSV e inferir automáticamente el delimitador?

Quiero importar dos tipos de archivos CSV, algunos usan ";" para delimitador y otros usan ",". Hasta ahora he estado cambiando entre las siguientes dos líneas:

reader=csv.reader(f,delimiter=';')

o

reader=csv.reader(f,delimiter=',')

¿Es posible no especificar el delimitador y permitir que el programa verifique el delimitador correcto?

Las siguientes soluciones (Blender y sharth) parecen funcionar bien para archivos separados por comas (generados con Libroffice) pero no para archivos separados por punto y coma (generados con MS Office). Aquí están las primeras líneas de un archivo separado por punto y coma:

ReleveAnnee;ReleveMois;NoOrdre;TitreRMC;AdopCSRegleVote;AdopCSAbs;AdoptCSContre;NoCELEX;ProposAnnee;ProposChrono;ProposOrigine;NoUniqueAnnee;NoUniqueType;NoUniqueChrono;PropoSplittee;Suite2LecturePE;Council PATH;Notes
1999;1;1;1999/83/EC: Council Decision of 18 January 1999 authorising the Kingdom of Denmark to apply or to continue to apply reductions in, or exemptions from, excise duties on certain mineral oils used for specific purposes, in accordance with the procedure provided for in Article 8(4) of Directive 92/81/EEC;U;;;31999D0083;1998;577;COM;NULL;CS;NULL;;;;Propos* are missing on Celex document
1999;1;2;1999/81/EC: Council Decision of 18 January 1999 authorising the Kingdom of Spain to apply a measure derogating from Articles 2 and 28a(1) of the Sixth Directive (77/388/EEC) on the harmonisation of the laws of the Member States relating to turnover taxes;U;;;31999D0081;1998;184;COM;NULL;CS;NULL;;;;Propos* are missing on Celex document

Respuestas a la pregunta(5)

Su respuesta a la pregunta