Bisakah file CSV memberi komentar?

203

Apakah ada cara resmi untuk mengizinkan file berformat CSV untuk memungkinkan komentar, baik pada barisnya sendiri ATAU di akhir baris?

Saya mencoba memeriksa wikipedia tentang ini dan juga RFC 4180 tetapi keduanya tidak menyebutkan apa pun yang membuat saya percaya bahwa itu bukan bagian dari format file jadi itu nasib buruk bagi saya dan saya kemudian harus menggunakan file ReadMe.txt terpisah untuk menjelaskan mengajukan.

Terakhir, saya tahu mudah bagi saya untuk menambahkan komentar saya sendiri, tetapi saya berharap sesuatu seperti Excel dapat langsung mengimpornya tanpa perlu konsumen harus menyesuaikan proses impor.

Jadi, pikiran?

Murni
sumber
1
Apa yang akan Anda komentari? Nilai-nilai di setiap baris atau file itu sendiri? Apakah file XML alternatif untuk Anda?
Square Rig Master
3
Proposal ditembak jatuh untuk Python .
new123456
2
Mungkin versi string untuk data @SquareRigMaster. Sama seperti yang saya coba lakukan sekarang?
Rob Wells
@SquareRigMaster - Atau pernyataan hak cipta.
Richard Smith

Jawaban:

116

"Standar" CSV (seperti apa adanya) tidak menentukan bagaimana komentar harus ditangani, tidak, tergantung pada aplikasi untuk membuat konvensi dan mematuhinya.

skaffman
sumber
23
RFC 4180 adalah standar sekarang.
vipw
34
RFC 4180 bukan standar, rfc4180 memberi tahu: "Memo ini memberikan informasi untuk komunitas Internet. Ia tidak menentukan standar Internet apa pun. Distribusi memo ini tidak terbatas."
Paul Weibert
14
OK, bisakah kita katakan standar de facto?
Marco Sulla
1
Semua RFC adalah memo yang tidak dimaksudkan untuk memberikan standar Internet AFAIK
usr-local-ΕΨΗΕΛΩΝ
5
Yah ... itu tidak benar. Ada dokumen trek standar dan dokumen trek non-standar (informasi). Seluruh proses, termasuk deskripsi, proses dan aturan untuk dokumen yang diterbitkan IETF didefinisikan oleh RFC2026 dengan beberapa tindak lanjut amandemen. Setiap RFC akan menentukan di awal di mana trek itu berada.
Steve Hole
31

Dalam data teknik, adalah umum untuk melihat #simbol di kolom pertama yang digunakan untuk memberi sinyal komentar.

Saya menggunakan perpustakaan parsing CSV ostermiller untuk membaca dan memproses file tersebut. Perpustakaan itu memungkinkan Anda untuk mengatur karakter komentar. Setelah operasi parse Anda mendapatkan array yang hanya berisi data nyata, tidak ada komentar.

Pedro_Tidak
sumber
30

Tidak, CSV tidak menentukan cara apa pun untuk menandai komentar - mereka hanya akan dimuat oleh program seperti Excel sebagai sel tambahan yang berisi teks.

Cara terdekat yang dapat Anda kelola (dengan CSV yang diimpor ke aplikasi spesifik seperti Excel) adalah dengan menetapkan cara khusus untuk menandai komentar yang akan diabaikan oleh Excel. Untuk Excel, Anda bisa "menyembunyikan" komentar (sampai tingkat tertentu) dengan menyematkannya ke dalam rumus. Misalnya, coba mengimpor file csv berikut ke Excel:

=N("This is a comment and will appear as a simple zero value in excel")
John, Doe, 24

Anda masih memiliki sel di spreadsheet yang menampilkan angka 0, tetapi komentarnya tersembunyi.

Atau, Anda dapat menyembunyikan teks hanya dengan melapisinya dengan spasi sehingga tidak ditampilkan di bagian sel yang terlihat:

                              This is a sort-of hidden comment!,
John, Doe, 24

Perhatikan bahwa Anda harus mengikuti teks komentar dengan koma sehingga Excel mengisi sel berikut dan dengan demikian menyembunyikan bagian mana pun dari teks yang tidak cocok di dalam sel.

Retas jahat, yang hanya akan bekerja dengan Excel, tetapi cukup untuk membuat output Anda terlihat sedikit lebih rapi setelah mengimpor.

Jason Williams
sumber
6

Saya pikir cara terbaik untuk menambahkan komentar ke file CSV adalah menambahkan bidang "Komentar" atau merekam langsung ke dalam data.

Sebagian besar aplikasi penguraian CSV yang telah saya gunakan mengimplementasikan pemetaan lapangan dan pemilihan catatan. Jadi, untuk mengomentari properti bidang, tambahkan catatan hanya untuk deskripsi bidang. Untuk mengomentari catatan, tambahkan bidang di bagian akhir (well, semua catatan, sungguh) hanya untuk komentar.

Ini adalah satu-satunya dua alasan yang bisa saya pikirkan untuk berkomentar file CSV. Tetapi satu-satunya masalah yang dapat saya ramalkan adalah program-program yang menolak untuk menerima file sama sekali jika ada catatan tunggal yang tidak melewati beberapa aturan validasi. Dalam hal ini, Anda akan kesulitan menulis catatan deskripsi bidang tipe string untuk bidang numerik apa pun.

Saya tidak berarti seorang ahli, jadi jangan ragu untuk menunjukkan kesalahan dalam teori saya.

Tyler Mumford
sumber
2
Aaand, saya baru saja membaca bahwa Anda tidak ingin menyesuaikan proses impor. Maaf soal itu. Semoga seseorang menemukan ini berguna, kalau begitu.
Tyler Mumford
1
Pos yang bagus. Alasan lain yang bisa saya pikirkan mengapa Anda ingin komentar adalah menambahkan beberapa meta-data tentang file secara keseluruhan. Menambahkan seluruh kolom atau baris hanya untuk satu sel dengan info ini rasanya agak canggung.
Ben Hershey
3

File Terpisah Koma sebenarnya hanyalah file teks yang garisnya terdiri dari nilai yang dipisahkan oleh koma.

Tidak ada standar yang mendefinisikan konten file CSV, jadi tidak ada cara yang pasti untuk menunjukkan komentar. Itu tergantung pada program yang akan mengimpor file CSV.

Tentu saja, ini biasanya Excel. Anda harus bertanya pada diri sendiri bagaimana Excel mendefinisikan komentar? Dengan kata lain, apa yang akan membuat Excel mengabaikan satu baris (atau bagian dari satu baris) dalam file CSV? Saya tidak mengetahui apa pun yang akan melakukan ini.

pavium
sumber
2
There is no standard which defines the contents of a CSV file Salah.
Qix - MONICA DISALAHKAN
5
@Qix - dari bagian 2 dokumen yang direferensikan: "Meskipun ada berbagai spesifikasi dan implementasi untuk format CSV (mis. [4], [5], [6] dan [7]), tidak ada spesifikasi formal dalam keberadaan "
Teknologi Alien
3

Jika Anda mengurai file dengan perintah FOR dalam file batch, tanda titik koma berfungsi (;)

REM test.bat contents

for /F "tokens=1-3 delims=," %%a in (test.csv) do @Echo %%a, %%b, %%c

;test.csv contents (this line is a comment)

;1,ignore this line,no it shouldn't

2,parse this line,yes it should!

;3,ignore this line,no it shouldn't

4,parse this line,yes it should!

KELUARAN:

2, parse this line, yes it should!

4, parse this line, yes it should!
Ken Bob Saxton
sumber
1
!! Apakah Anda Barefoot Ken Bob yang asli?
Geoffrey Hale
2

Jika Anda membutuhkan sesuatu seperti:

  │ A                              │ B
──┼────────────────────────────────┼───
1 │ #My comment, something else    │
2 │ 1                              │ 2

CSV Anda mungkin berisi baris berikut:

"#My comment, something else"
1,2

Perhatikan baik-baik 'tanda kutip' di baris pertama.

Saat mengonversi teks Anda menjadi kolom menggunakan wizard Excel, ingatlah memeriksa 'Perlakukan pembatas berurutan sebagai satu', atur untuk menggunakan 'tanda kutip' sebagai pembatas.

Dengan demikian, Excel akan membagi teks di koma, menjaga baris 'komentar' sebagai nilai kolom tunggal (dan itu akan menghapus tanda kutip).

Rogerio Granato
sumber