Soru Tsv ve csv arasında seçim yapma


Bir tablo çıkaran bir programım var ve csv ve tsv formatları arasında herhangi bir avantaj / dezavantaj olup olmadığını merak ediyordum.


25
2018-06-21 00:41


Menşei


Çıktı dosyası ile ne yapacaksınız? - Blorgbeard
Sonunda, tablodaki verileri grafiklemek için başkası tarafından kullanılacaktır. Ama benim sorum biraz daha genel oldu - PKompella
Peki, diğer kişiye ne istediklerini sor? StackOverflow sorularının spesifik olması gerekiyor - pro / cons listelerini istemiyoruz - Blorgbeard
Sekmeler görsel olarak daha hoş olsa da, bazen boş sütun alanlarını temsil etmek zor olabilir ... Ayrıca bazı editörler sekmeleri farklı hale getirir ve görünmez bir karakter olduğu için, bazı insanlar boşluk karakterleriyle karıştırırlar. Genel olarak her zaman daha güvenlidir. alan ayırıcı olarak görünür bir karakter (örneğin, ",") kullanmak için. - Mark O'Connor
Tüm değerlerin "alan normalleştirmesi" olacağını ve sekmeleri veya satır sonlarını içermeyeceğini bildiğim durumlarda TSV'yi kullanmayı seviyorum. Sonra uygun alıntı / kaçma bir sorun haline gelir. - Jonathan Warden


Cevaplar:


TSV, kaybetmeden işlemek için Javascript / Perl / Python için çok etkili  Herhangi bir yazarak bilgi, ve ayrıca insanlar için okumak için kolay.

Biçim, yayınlanmasından bu yana 4store'da desteklenmiştir ve  oldukça yaygın olarak kullanılıyor.

Baktığım şekil: CSV e-tablolara yüklemek içindir, TSV  özel yazılım ile işleme için.

Burada her birinin teknik özelliklerini görebilirsiniz.


35
2018-06-21 00:49



Excel'de CSV içe aktarımı, ayırıcıdan bölgesel ayarlara bağımlı olmaktan muzdariptir, bazen "," ve bazen ";" olur ... - Eric Grange
Doğru sözdizimi ve yaklaşımı kullanılıyorsa, CSV veya TSV e-tablolara veya özel yazılımlara yüklenebilir. TSV başlangıçta daha kolay okunabilir gibi görünebilir, ancak CSV ile iki virgül verileri arasında boş bir sütun olduğunda açıkça görebiliyorsunuz1, veri3 ise TSV ile boş bir sütun nedir ve bitişik sütun verisinde boşluk nedir? . Excel veri içe aktarma ile ilgili sorunlar, CSV formatıyla sınırlı değildir, aynı zamanda zamanlama formatını sormadan değiştirir. Excel, veri kümeleri dönemini içe aktarmak için güvenilir bir araç değildir. - Hamish_Fernsby
@EricGrange Editörde whitespaces gösterebilir. Ancak, herkesin bunu anlayamayacağını varsayalım. - ColacX


Seçim uygulamaya bağlıdır. Özetle, alanlarınız virgül içermiyorsa CSV'yi kullanın; aksi halde TSV gitmek için yoldur.

TL; DR

Her iki formatta da, sınırlayıcı alanların içinde görünebileceği zaman problem ortaya çıkar, bu yüzden sınırlayıcının bir alan ayırıcısı olarak değil, alan içinde bir değer olarak çalıştığını belirtmek gerekir, ki bu biraz acı verebilir.

Örneğin, CSV'yi kullanarak: Kalman, Rudolf, von Neumann, John, Gabor, Dennis

Bazı temel yaklaşımlar şunlardır:

  • Alanda görünen tüm sınırlayıcıları silin.

    Örneğin. Kalman Rudolf, von Neumann John, Gabor Dennis

  • Karakterden kaçmak (genellikle bir ters eğik çizgi eklemek) \).

    Örneğin. Kalman\, Rudolf, von Neumann\, John, Gabor\, Dennis

  • Her alanı diğer karakterlerle (genellikle çift tırnaklı) ").

    Örneğin. "Kalman, Rudolf", "von Neumann, John", "Gabor, Dennis"

CSV

Alanlar virgülle ayrılır ,.

Örneğin:

Name,Score,Country
Peter,156,GB
Piero,89,IT
Pedro,31415,ES

Avantajları:

  • Teknik olmayan kişilerle paylaşırken daha genel ve yararlıdır. yazılım paketlerinin çoğu, ayarlar.

Dezavantajları:

  • Alanlardaki virgülden kaçmak sinir bozucu olabilir çünkü Herkes standartları takip eder.
  • Tüm fazladan kaçan karakterler ve alıntılar, son dosya boyutuna ağırlık ekler.

TSV

Alanlar bir tablo ile ayrılır <TAB> veya \t

Örneğin:

Name<TAB>Score<TAB>Country
Peter<TAB>156<TAB>GB
Piero<TAB>89<TAB>IT
Pedro<TAB>31415<TAB>ES

Avantajları:

  • Bir alan içinde sekme karakterinin olması olağan olmadığı için sınırlayıcıdan kurtulmak gerekli değildir. Aksi halde, kaldırılmalıdır.

Dezavantajları:

  • Daha az yaygındır.

14
2018-05-12 22:15



FYI: TSV için standartta belirtildiği gibi (iana.org/assignments/media-types/text/tab-separated-values), Nakledilen verilerin bir parçası olarak sekmelere izin verilmez. - Sam Sirry


İstediğiniz herhangi bir sınırlayıcıyı kullanabilirsiniz, ancak sekmeler ve virgüller Excel, MySQL, PostgreSQL dahil olmak üzere birçok uygulama tarafından desteklenir. Virgüller metin alanlarında yaygındır, bu yüzden onlardan kaçarsanız, daha fazlasının kaçması gerekir. Onlardan kaçmazsanız ve alanlarınız virgül içerebilirse, dosyanızda "sort -k2.4" dosyasını güvenle çalıştıramazsınız. Zaten alanlardaki bazı karakterlerden kaçmanız gerekebilir (boş bayt, satır sonu, vb.). Bu nedenler ve daha fazlası için tercihlerim, TSV'leri kullanmak ve alanlardaki kaçış sekmelerini, boş baytları ve yeni satırları kullanmaktır. Ek olarak, TSV'lerle çalışmak genellikle daha kolaydır. Her satırı sekme sınırlayıcıyla bölün. CSV'lerle alıntılanan alanlar, muhtemelen yeni satırlarla alanlar vb. Vardır. Zorladığımda yalnızca CSV'leri kullanırım.


2
2017-09-04 11:40



TSV, çıkış sekmelerini desteklemiyor: iana.org/assignments/media-types/text/tab-separated-values - Good Person


Ben genellikle csv, tsv biçiminden daha sık desteklendiğini düşünüyorum.


1
2018-06-21 00:49