CSV’lere ekleyebileceğiniz “sep =” meta verileri nedir?


24

CSV'lerin İspanyolca bir bilgisayarda Excel'de doğru açılmasını sağlamaya çalışırken (bir müşteriye ait) sep=,dosyanın üstünde kullanmanızı tavsiye eden birçok cevap buldum :

Onun karşısında, bu yaklaşım çalışır ancak bu cevapların hiçbiri ilgili başka bilgi vermek nerede bu meta seçeneği geliyor. Ne anlama geldiğini aramaya çalıştım (ve bu nedenle tüm bu cevapları buldum) ancak özellikle noktalama işaretlerinin aranması zor olduğu düşünüldüğünde daha fazla bilgi alamadım.

Asıl endişem, bunun Excel'e özgü bir özellik olup olmadığı . Sanıyorum ama onaylamak için kesin bir şey bulamadım.

Bazı ilgili sorular:

  • Bu ayarda hangi karakterler kullanılabilir?
  • Başka hangi ayarların kullanılabilir olduğu (örneğin.
  • Bu özelliği resmi olarak destekleyen başka araçlar var mı?

Birilerinin bana tüm bu soruları ve daha fazlasını cevaplayacağını gösteren bir belge olduğunu umuyorum; Sadece onu bulamadım.

Bazı açıklama:

Bu sep=bir ayrıştırıcı için bir parametre değildir. CSV içine yerleştirilmek içindir . Örnek:

sep=|
"LETTER"|"ANIMAL"
"a"|"aardvark"
"b"|"bear"
"c"|"cow"

4
Evet, bu çok özel .
Raystafarian,

2
Bu konuda bir şey bulabildin mi? Aynı soru ile güdük ve henüz bu özelliği açıklayan herhangi bir MS özelliklerini bulamıyorum. Bu özellik MS tarafından belgelenmemişse, ilk etapta nasıl halt edildi?
yürümeye başlayan çocuklar

@toddlermenot Ne yazık ki değil. Tek aldığım insanlar, bu iddiayı destekleyecek hiçbir şey olmadan Excel'e özgü olduğunu iddia eden, hayal kırıklığı yaratan insanlar.
Burhan Ali

Yanıtlar:


7

RFC 4180 , CSV formatı için standart olarak bilinir ve bu özelliklerden bahsetmez.

Web'deki Tablo Veri ve Meta Veriler için W3C Modeli, kendi kapsamı içinde olmayan bir özellik olarak bahseder:

Birçok "CSV" dosyası meta verileri yerleştirir, örneğin CSV belgesinin başlık satırından önceki satırlara. Bu belirtim, başlık satırındaki sütun adlarından başka, CSV dosyalarına meta verileri yerleştirmek için herhangi bir format tanımlamaz.

Dolayısıyla, bu özelliğin Excel'e özgü olduğuna dair doğrudan bir kanıt bulamadığım halde, bu özelliği kapsayan bir standardizasyon belgesi olmadığı görülüyor.


Kaynak iyi. Söylemem gereken şeylerden biri sep = | Excel'de kullanılacak ayırıcıyı boru karakteri ('|') olarak tanımlar. Yaygın olarak kullanılmamaktadır, ancak Excel'e münhasır değildir. Bu bir ayırıcı direktiftir. Excel iirc'in uluslararası sürümleri farklı karakterlere sahiptir; örneğin, Excel çalıştıran bir makinede Avrupa dili noktalı virgül kullanır.
var firstName

1
Kullanımın farkındayım (belki de cevabımdan tamamen anlaşılmadı). Ben sadece Excel'in bu özelliği ortaya koyduğunu, her türlü (genel) standarda dayandığını belirtti.
Stefan Kögl


-1

Sep = komutu, virgülün ondalık ayırıcı olarak kullanıldığı tüm ülkelerde, İtalya olarak kullanılır. Excel, CSV’yi virgül yerine virgül yerine noktalı virgül kullanarak dışa aktardığından, dosyanın ABD’de veya diğer ülkelerde okunabildiğinden emin olmak istiyorsanız

Eylül =;

Dosyanın üstüne. Bu Excel'e özgüdür ve diğer uygulamalar tarafından göz ardı edilebilir.


-2

Hemen hemen .csv dosyalarından aktarabilen herhangi bir araç virgülün tek olası ayırıcı olmadığını kabul eder, örneğin sekmeler uzun süredir yaygındır. Bence bu, delikli kartların günlerine kadar uzanıyor, veri alanının sonu olarak tanınan bir karakterin olması gerekiyor - sabit genişlikli alanlar veya uzunluk ön ekli alanlar kullanan sistemler hariç, hemen hemen her sistemin buna ihtiyacı var. bilgisayarların ortaya çıkışından beri.

3 temel alan bir alan ayırıcı, bir kayıt ayırıcı ve veri işaretleyicinin sonu, varsayılan olarak csv , sırasıyla bunlar için virgül, yeni satır ve dosya sonu kullanır, ancak hemen hemen herhangi bir geçerli girdi kullanılabilir, ancak bir mekanizmaya ihtiyacınız var Geçerli verilerinizde bulunursa, özel işaretçilerden kaçmak için.

Karşılaştığım tarihi bir sistem alan sonu, kayıt *!*!* END *!*!*sonu ve veri sonu için 2 boş satır kullandı . Yaygın ,\t|:olarak çeşitli kontrol karakterlerinin yanı sıra bir alan ayırıcı olarak kullanılanların hepsine rastladım .

Dikkat edilmesi gereken noktalardan biri, Fransızların ve diğerlerinin virgülleri ondalık nokta olarak kullanmasıdır - bu her türlü eğlenceye ve oyuna neden olabilir. Rfc4180'deki csv dosyaları için bir dereceye kadar standardizasyon var ancak dosyaları bir programdan dışa aktarırken diğerine içe aktarırken manüel olarak düzenlemeniz gereken zamanlar var.

Sorunuzun ikinci bölümüne cevap vermek için Python, örneğin, aşağıdaki seçenekleri sunan standart kütüphanelerden biri olarak bir csv okuyucu / yazar içerir :

  • delimiter- Bu alan ayırıcısıdır (kaçmadıkça).
  • doublequote- Gerçek ardından ise " içinde bir alan olarak temsil edilecek""
  • escapechar- Herhangi bir özel karakteri aşağıdaki karakterlerden kaldırır; örneğin, eğer \alıntı olarak ayarlanmışsa, alıntı olarak gösterilebilir.\"
  • lineterminator- genellikle bir \n, \r, \r\nya da\n\r
  • quotechar- karakteri genellikle dizeleri alıntı kullanılan "veya'
  • quoting - biri olarak işaretle:
    • ALL - Her alan tırnak içindedir, yani: "1","Free Beer","ASAP"
    • MINIMAL - Yalnızca özel karakter içeren alanları işaretleyin, yani: 1,"Beer, (Free)", Now, Please
    • QUOTE_NONNUMERIC - Sayı olmayan herhangi bir şey, yani: 1,"Beer, (Free)", "Now", "Please"
    • NONE - Bunun yerine kaçış alıntı yapmayın, yani: 1,Beer\, (Free), Now, Please
  • skipinitialspace- Her alanın öndeki boşluğunu atlayın, böylece , sadece ,bir alan ayırıcı olarak kullanmak yerine kullanabilirsiniz .

Genel olarak, csv dosyalarını içe aktarabilen daha esnek ve iyi düşünülmüş bir araç, sahip olacağı seçeneklerden (muhtemelen farklı adlara ve / veya mekanizmalara sahip) daha fazladır.


2
Bu sorumu cevaplamıyor. CSV'lerin ne olduğunu ve zaten farkında olduğumu açıklar. Benim sorum belirli bir sözdizimi parçası hakkında. Bir şeyleri netleştirmek için soruma ekleyebileceğim bir geçmiş var mı?
Burhan Ali

1
Teşekkürler ama bu hala yardımcı olmuyor. sep=ayrıştırıcı için bir parametre değildir. Soruma bazı açıklamalar ekledim.
Burhan Ali,

1
@SteveBarnes Ancak bahsettiğiniz Python kütüphanesi gibi herhangi bir araç, dosyanın içeriğinin bir parçası olarak seçeneklere izin veriyor mu? Sanırım, sorunun asıl amacı bu.
Randy Orrison

1
"Çünkü onlar birçok mükemmel tuhaflıktan biri." Öyle mi? Bu çalışmaya çalıştığım şeyin bir parçası. CSV'nin ne olduğunu bilmek istemiyorum. CSV'nin nasıl ayrıştırılacağını bilmek istemiyorum. Ne sep=olduğunu ve nereden geldiğini bilmek istiyorum .
Burhan Ali

2
sep = bulabildiğim Microsoft'a ait olmayan hiçbir spesifikasyonda bulunmayan bir Microsoft Excel'e özgü ipucu yöntemidir. Microsoft'un bir bölümünden geliyor.
Steve Barnes
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.