Bir CSV dosyasının yorumu olabilir mi?


204

CSV biçimli bir dosyanın, kendi satırında VEYA satır sonunda yorumlara izin vermesine izin vermenin resmi bir yolu var mı?

Bu ve ayrıca RFC 4180 üzerinde wikipedia kontrol etmeyi denedim ama her ikisi de bana dosya biçiminin bir parçası olmadığına inanmamı sağlayan bir şeyden bahsetmiyorum, bu yüzden bana kötü şans ve daha sonra açıklamak için ayrı bir ReadMe.txt dosyası thingy kullanmalıyım dosya.

Son olarak, kendi yorumlarımı eklememin kolay olduğunu biliyorum, ancak Excel gibi bir şeyin sadece bir tüketicinin içe aktarma işlemini özelleştirmek zorunda kalmadan hemen içe aktarabileceğini umuyordum.

Öyleyse, düşünceler?


1
Ne hakkında yorum yaparsınız? Her satırdaki değerler veya dosyanın kendisi? XML dosyası sizin için bir alternatif mi?
Square Rig Master

3
Python için öneri düşürüldü .
yeni123456

2
@SquareRigMaster verileri için bir sürüm dizesi olabilir. Tıpkı şimdi yapmaya çalıştığım gibi mi?
Rob Wells

@SquareRigMaster - Veya bir telif hakkı bildirimi.
Richard Smith

Yanıtlar:


117

CSV "standardı" (olduğu gibi) yorumların nasıl ele alınacağını dikte etmez, hayır, bir sözleşme oluşturmak ve ona bağlı kalmak uygulamaya bağlıdır.


23
RFC 4180 artık standart.
vipw

34
RFC 4180 standart değildir, rfc4180 "Bu not İnternet topluluğu için bilgi sağlar. Herhangi bir İnternet standardı belirtmez. Bu notun dağıtımı sınırsızdır."
Paul Weibert

14
Tamam, fiili bir standart olduğunu söyleyebilir miyiz?
Marco Sulla

1
Tüm RFC'ler, herhangi bir İnternet standardı AFAIK sağlamak için tasarlanmamış
notlardır

5
Yah ... bu doğru değil. Standart izleme belgeleri ve standart olmayan izleme (bilgilendirme) belgeleri vardır. IETF tarafından yayınlanan belgelerin açıklamaları, süreçleri ve kuralları da dahil olmak üzere tüm süreç, RFC2026 tarafından bazı değişiklikler takip edilerek tanımlanır. Her RFC başlangıçta hangi parçanın açık olduğunu belirtir.
Steve Hole

31

Mühendislik verilerinde, #bir yorumu bildirmek için kullanılan ilk sütunda sembolü görmek yaygındır .

Bu dosyaları okumak ve işlemek için ostermiller CSV ayrıştırma kitaplığını kullanıyorum. Bu kütüphane yorum karakterini ayarlamanızı sağlar. Ayrıştırma işleminden sonra yalnızca gerçek verileri içeren bir dizi alırsınız, yorum yok.


30

Hayır, CSV yorumları etiketlemenin herhangi bir yolunu belirtmez; bunlar Excel gibi programlar tarafından metin içeren ek hücreler olarak yüklenir.

Yönetebileceğiniz en yakın (CSV, Excel gibi belirli bir uygulamaya içe aktarıldığında), Excel'in yok sayacağı yorumları etiketlemenin özel bir yolunu tanımlamaktır. Excel için, bir formüle gömerek yorumu (sınırlı bir dereceye kadar) "gizleyebilirsiniz". Örneğin, aşağıdaki csv dosyasını Excel'e aktarmayı deneyin:

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

Hala e-tabloda 0 sayısını görüntüleyen bir hücre bulunur, ancak yorum gizlenir.

Alternatif olarak, metni hücrenin görünür kısmında görüntülenmeyecek şekilde boşluklarla doldurarak gizleyebilirsiniz:

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

Yorum metnini virgülle izlemeniz gerektiğini unutmayın, böylece Excel aşağıdaki hücreyi doldurur ve böylece metnin hücreye sığmayan herhangi bir bölümünü gizler.

Sadece Excel ile çalışacak kötü kesmek, ancak içe aktardıktan sonra çıktınızın biraz daha düzenli görünmesini sağlayabilirler.


6

Bir CSV dosyasına yorum eklemenin en iyi yolunun "Yorumlar" alanı eklemek veya doğrudan verilere kaydetmek olduğunu düşünüyorum.

Kullandığım çoğu CSV ayrıştırma uygulaması hem alan eşleme hem de kayıt seçimini uygular. Bu nedenle, bir alanın özellikleri hakkında yorum yapmak için yalnızca alan açıklamaları için bir kayıt ekleyin. Bir kayda yorum yapmak için, sonuna yalnızca bir yorum ekleyin.

Bunlar, bir CSV dosyasına yorum yapmayı düşünebilmemin iki nedeni. Ancak öngörüldüğüm tek sorun, herhangi bir kayıt bazı doğrulama kurallarını geçmezse dosyayı kabul etmeyi reddeden programlar olacaktır. Bu durumda, herhangi bir sayısal alan için dize türü alan açıklaması kaydı yazma konusunda sorun yaşarsınız.

Ben hiçbir şekilde uzman değilim, bu yüzden teorimdeki herhangi bir hatayı belirtmekten çekinmeyin.


2
Aaand, sadece içe aktarma işlemini özelleştirmek istemediğinizi okudum. Üzgünüm. Umarım birisi bunu faydalı bulur.
Tyler Mumford

1
İyi yazı. Yorumları neden isteyebileceğinizi düşünebilmemin bir başka nedeni, dosya hakkında bir miktar meta veri eklemektir. Bu bilgi ile sadece bir hücre için bir sütun veya satır eklemek biraz garip geliyor.
Ben Hershey

3

Virgülle Ayrılmış Dosya gerçekten de satırların virgülle ayrılmış değerlerden oluştuğu bir metin dosyasıdır.

CSV dosyasının içeriğini tanımlayan bir standart yoktur, bu nedenle bir yorumu belirtmenin tanımlanmış bir yolu yoktur. CSV dosyasını içe aktaracak programa bağlıdır.

Tabii ki, bu genellikle Excel'dir. Excel'e bir yorumu nasıl tanımladığını kendinize sormalısınız. Başka bir deyişle, Excel'in CSV dosyasındaki bir satırı (veya satırın bir bölümünü) yoksaymasını ne sağlar? Bunu yapacak hiçbir şeyin farkında değilim.


2
There is no standard which defines the contents of a CSV file Yanlış.
Qix - MONICA

5
@Qix - atıfta bulunulan belgenin 2. bölümünden: "CSV biçimi için çeşitli özellikler ve uygulamalar olsa da (ör. [4], [5], [6] ve [7] için),
Alien Technology

3

Bir toplu iş dosyasında FOR komutuyla dosyayı ayrıştırıyorsanız noktalı virgül çalışır (;)

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!

ÇIKTI:

2, parse this line, yes it should!

4, parse this line, yes it should!

1
!! Gerçek Yalınayak Ken Bob siz misiniz?
Geoffrey Hale

2

Gibi bir şeye ihtiyacınız varsa:

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

CSV'niz aşağıdaki satırları içerebilir:

"#My comment, something else"
1,2

İlk satırdaki 'alıntılara' dikkat edin.

Metninizi Excel sihirbazını kullanarak sütunlara dönüştürürken, 'Ardışık sınırlayıcıları tek olarak ele al' seçeneğini işaretlemeyi ve onu 'tırnak işaretlerini' ayırıcı olarak kullanacak şekilde ayarlamayı unutmayın.

Böylece Excel, virgüldeki metni böler ve 'comment' satırını tek bir sütun değeri olarak tutar (ve tırnak işaretlerini kaldırır).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.