RFC 4180 menetapkan koma sebagai pemisah. Spreadsheet tidak selalu menurutinya: saat berkas CSV dibuka, pemisah yang dipakai adalah pemisah daftar milik pengaturan wilayah sistem. Di wilayah yang memakai koma sebagai tanda desimal — termasuk Indonesia dan sebagian besar Eropa — pemisah daftarnya titik koma, karena koma sudah terpakai di dalam angka.
| Pengaturan wilayah | Tanda desimal | Pemisah daftar | Baris CSV yang dihasilkan |
|---|---|---|---|
| Inggris/Amerika | . | , | Ani,250000.50 |
| Indonesia/Eropa | , | ; | Ani;250000,50 |
Akibatnya satu berkas dapat terlihat benar di komputer penyusunnya dan berantakan di komputer penerimanya. Gejala paling jelas: seluruh isi baris masuk ke kolom A, karena pembaca mencari koma sementara berkas memakai titik koma. Sebaliknya, berkas berkoma yang dibuka di wilayah Eropa memecah angka 250000,50 menjadi dua kolom.
import csv, io
DATA = "nama;kota\nAni;Bandung\n"
for baris in csv.reader(io.StringIO(DATA), delimiter=";"):
print(baris) # ['nama', 'kota'] lalu ['Ani', 'Bandung']Saat menerima berkas dari pihak lain, periksa dulu baris pertamanya sebagai teks polos. csv.Sniffer membaca cuplikan dan menebak pemisahnya, dan hasil tebakan itu dapat dipakai langsung sebagai argumen delimiter.