2009-12-25 17 views
152

क्या सीएसवी प्रारूपित फ़ाइल को टिप्पणियों की अनुमति देने के लिए कोई आधिकारिक तरीका है, या तो अपनी लाइन पर या लाइन के अंत में?क्या सीएसवी फ़ाइल में कोई टिप्पणी हो सकती है?

मैं इस पर wikipedia और भी RFC 4180 जाँच की कोशिश की लेकिन दोनों कुछ भी जो मुझे विश्वास है कि यह फ़ाइल स्वरूप का हिस्सा नहीं है, तो यह मेरे लिए दुर्भाग्य है का उल्लेख नहीं है और मैं तो एक अलग Readme.txt फ़ाइल thingy का उपयोग करना चाहिए फ़ाइल को समझाने के लिए।

आखिरकार, मुझे पता है कि मेरे लिए अपनी टिप्पणियां जोड़ना मेरे लिए आसान है, लेकिन मैं उम्मीद कर रहा था कि एक्सेल जैसे कुछ आयात करने के लिए किसी उपभोक्ता को आयात प्रक्रिया को अनुकूलित करने की आवश्यकता के बिना इसे तुरंत आयात कर सकता है।

तो, विचार?

+1

आप क्या टिप्पणी की पर? प्रत्येक पंक्ति या फ़ाइल में मूल्य खुद? क्या एक्सएमएल फाइल आपके लिए एक विकल्प है? –

+3

प्रस्तावना [पायथन] के लिए गोली मार दी गई थी (http://bugs.python.org/issue1225769)। – new123456

+2

शायद @SquareRigMaster डेटा के लिए एक संस्करण स्ट्रिंग। जैसे मैं अब करने की कोशिश कर रहा हूं? –

उत्तर

78

सीएसवी "मानक" (यह है इस तरह के रूप में) यह तय नहीं होता कि कैसे टिप्पणी संभाला जाना चाहिए, नहीं, यह एक सम्मेलन की स्थापना और इसके साथ छड़ी करने के लिए आवेदन पर निर्भर है।

+19

आरएफसी 4180 अब मानक है। – vipw

+13

आरएफसी 4180 मानक नहीं है, [आरएफसी 4180] (http://tools.ietf.org/html/rfc4180) बताता है: "यह ज्ञापन इंटरनेट समुदाय के लिए जानकारी प्रदान करता है। यह किसी भी प्रकार का इंटरनेट मानक निर्दिष्ट नहीं करता है। इस मेमो का वितरण असीमित है। " –

+7

ठीक है, क्या हम कह सकते हैं कि एक वास्तविक तथ्य है? –

2

एक कॉमा सेपरेटेड फ़ाइल वास्तव में केवल एक टेक्स्ट फ़ाइल है जहां लाइनों में अल्पविराम से अलग मूल्य शामिल होते हैं।

कोई मानक नहीं है जो एक CSV फ़ाइल की सामग्री को परिभाषित करता है, इसलिए कोई टिप्पणी इंगित करने का कोई परिभाषित तरीका नहीं है। यह कार्यक्रम पर निर्भर करता है जो सीएसवी फ़ाइल आयात करेगा।

बेशक, यह आमतौर पर एक्सेल होता है। आपको खुद से पूछना चाहिए कि एक्सेल कैसे एक टिप्पणी परिभाषित करता है? दूसरे शब्दों में, सीएसवी फ़ाइल में Excel को लाइन (या रेखा का हिस्सा) को अनदेखा कर देगा? मुझे कुछ भी पता नहीं है जो ऐसा करेगा।

+1

'कोई मानक नहीं है जो एक CSV फ़ाइल की सामग्री को परिभाषित करता है' [गलत।] (Http://tools.ietf.org/html/rfc4180) – Qix

+3

@Qix - संदर्भित दस्तावेज़ की सेक्शन 2 से: "हालांकि वहां हैं सीएसवी प्रारूप के लिए विभिन्न विनिर्देशों और कार्यान्वयन (पूर्व [4], [5], [6] और [7]), अस्तित्व में कोई औपचारिक विनिर्देश नहीं है " –

23

नहीं है, सीएसवी टिप्पणियां टैग करने की किसी भी तरह से निर्दिष्ट नहीं है - वे बस एक्सेल के रूप में अतिरिक्त पाठ वाली कोशिकाओं की तरह कार्यक्रमों के द्वारा लोड किया जाएगा।

निकटतम आप का प्रबंधन कर सकते (सीएसवी साथ जैसे Excel एक विशिष्ट अनुप्रयोग में आयात किया जा रहा है) टिप्पणी है कि एक्सेल पर ध्यान नहीं देगा टैग करने की एक विशेष तरीके से परिभाषित करने के लिए है। एक्सेल के लिए, आप इसे फ़ॉर्मूला में एम्बेड करके टिप्पणी (सीमित डिग्री तक) "छिपा सकते हैं। उदाहरण के लिए, एक्सेल में निम्नलिखित csv फ़ाइल आयात करने का प्रयास:

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

तुम अब भी स्प्रेडशीट कि संख्या 0 प्रदर्शित करता है में एक सेल के साथ खत्म हो, लेकिन टिप्पणी छिपा हुआ है।

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

ध्यान दें कि आप एक साथ टिप्पणी पाठ पालन करने की आवश्यकता:

वैकल्पिक रूप से, आप बस रिक्त स्थान के साथ इसे बाहर पैडिंग करते हुए पाठ इतना है कि यह सेल के दृश्य भाग में प्रदर्शित नहीं किया जाता छिपा कर सकते हैं अल्पविराम ताकि एक्सेल निम्नलिखित सेल भरता है और इस प्रकार पाठ के किसी भी हिस्से को छुपाता है जो सेल में फिट नहीं होता है।

Nasty हैक्स, जो केवल एक्सेल के साथ काम करेंगे, लेकिन वे अपने उत्पादन आयात करने के बाद एक छोटा सा tidier देखो बनाने के लिए पर्याप्त होता है।

6

मुझे लगता है कि सबसे अच्छा तरीका है एक CSV फ़ाइल में टिप्पणियां जोड़ने के लिए सही डेटा में एक "टिप्पणी" खाने या रिकॉर्ड जोड़ने के लिए किया जाएगा।

अधिकांश सीएसवी-पार्सिंग अनुप्रयोगों है कि मैं दोनों क्षेत्र मानचित्रण और रिकार्ड को चुनने को लागू का उपयोग किया है। तो, किसी फ़ील्ड के गुणों पर टिप्पणी करने के लिए, फ़ील्ड विवरणों के लिए केवल एक रिकॉर्ड जोड़ें। रिकॉर्ड पर टिप्पणी करने के लिए, टिप्पणियों के लिए इसके अंत में एक फ़ील्ड जोड़ें (ठीक है, सभी रिकॉर्ड, वास्तव में)।

ये केवल दो कारण हैं जिन्हें मैं CSV फ़ाइल पर टिप्पणी करने के बारे में सोच सकता हूं। लेकिन एकमात्र समस्या जिसे मैं पूर्ववत कर सकता हूं वह प्रोग्राम होगा जो फ़ाइल को स्वीकार करने से इनकार करते हैं यदि कोई भी रिकॉर्ड कुछ सत्यापन नियमों को पास नहीं करता है। उस स्थिति में, आपको किसी भी संख्यात्मक फ़ील्ड के लिए स्ट्रिंग-प्रकार फ़ील्ड विवरण रिकॉर्ड लिखने में परेशानी होगी।

मैं किसी भी तरह से एक विशेषज्ञ नहीं हूं, इसलिए, मेरे सिद्धांत में किसी भी गलती को इंगित करने के लिए स्वतंत्र महसूस करें।

+1

आंड, मैं _just_ पढ़ता हूं कि आप नहीं चाहते थे आयात प्रक्रिया को अनुकूलित करें। उसके लिए क्षमा चाहता हूँ। उम्मीद है कि किसी को यह उपयोगी लगता है, तो। –

1

आप की तरह कुछ की जरूरत है: पहली पंक्ति में 'उद्धरण' पर

"#My comment, something else" 
1,2 

वेतन ध्यान:

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

आपकी सीएसवी निम्नलिखित पंक्तियाँ हो सकती।

एक्सेल विज़ार्ड का उपयोग करके अपने टेक्स्ट को कॉलम में कनवर्ट करते समय, 'उद्धरण' को डिलीमीटर के रूप में उपयोग करने के लिए 'निरंतर डिलीमीटरों को एक के रूप में देखें' की जांच करना याद रखें।

इस प्रकार, एक्सेल एक टिप्पणी कॉलम मान को एक कॉलम मान के रूप में रखते हुए, कॉमा पर पाठ को विभाजित करेगा (और यह उद्धरण हटा देगा)।

19

इंजीनियरिंग डेटा में, टिप्पणी को सिग्नल करने के लिए उपयोग किए गए पहले कॉलम में # प्रतीक देखना आम बात है।

मैं ऐसी फ़ाइलों को पढ़ने और संसाधित करने के लिए ostermiller CSV parsing library का उपयोग करता हूं। वह पुस्तकालय आपको टिप्पणी चरित्र सेट करने की अनुमति देता है। पार्स ऑपरेशन के बाद आपको एक सरणी मिलती है जिसमें वास्तविक डेटा होता है, कोई टिप्पणी नहीं।

2

आप एक बैच फ़ाइल में आदेश के लिए एक साथ फ़ाइल को पार्स कर रहे हैं अर्धविराम काम करता है (;)

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! 

उत्पादन:

2, parse this line, yes it should! 

4, parse this line, yes it should! 
+0

!! क्या आप असली बेयरफुट केन बॉब हैं? –

संबंधित मुद्दे

 संबंधित मुद्दे