क्या CSV फाइल में कोई टिप्पणी हो सकती है?


203

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

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

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

तो, विचार?


1
आप क्या टिप्पणी करेंगे? प्रत्येक लाइन या फ़ाइल में ही मान? क्या XML फ़ाइल आपके लिए एक विकल्प है?
स्क्वायर रिग मास्टर

3
पायथन के लिए प्रस्ताव रखा गया था ।
new123456

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

@SquareRigMaster - या कॉपीराइट स्टेटमेंट।
रिचर्ड स्मिथ

जवाबों:


116

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


23
RFC 4180 अब मानक है।
vipw

34
RFC 4180 एक मानक नहीं है, rfc4180 बताता है: "यह ज्ञापन इंटरनेट समुदाय के लिए जानकारी प्रदान करता है। यह किसी भी प्रकार के इंटरनेट मानक को निर्दिष्ट नहीं करता है। इस ज्ञापन का वितरण असीमित है।"
पॉल वीबेरट

14
ठीक है, क्या हम कह सकते हैं कि एक वास्तविक मानक है?
मार्को सुल्ला

1
सभी RFC मेमो का उद्देश्य किसी भी इंटरनेट मानक AFAIK को प्रदान करना नहीं है
usr-local-

5
याह ... यह सच नहीं है। मानक ट्रैक दस्तावेज़ और गैर-मानक ट्रैक (सूचनात्मक) दस्तावेज़ हैं। IETF द्वारा जारी दस्तावेजों के विवरण, प्रक्रियाओं और नियमों सहित पूरी प्रक्रिया को RFC2026 द्वारा संशोधनों पर कुछ अनुसरण के साथ परिभाषित किया गया है। प्रत्येक RFC शुरुआत में निर्दिष्ट करेगा कि यह किस ट्रैक पर है।
स्टीव होल

31

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

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


30

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

निकटतम आप प्रबंधित कर सकते हैं (CSV को Excel जैसे विशिष्ट एप्लिकेशन में आयात किए जाने के साथ), टिप्पणियों को टैग करने के एक विशेष तरीके को परिभाषित करना है जिसे Excel अनदेखा करेगा। एक्सेल के लिए, आप टिप्पणी (एक सीमित डिग्री तक) को एक सूत्र में एम्बेड करके "छिपा" सकते हैं। उदाहरण के लिए, 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

ध्यान दें कि आपको टिप्पणी पाठ का अल्पविराम के साथ पालन करने की आवश्यकता है ताकि एक्सेल निम्नलिखित सेल को भर दे और इस तरह पाठ के किसी भी हिस्से को छिपा दे जो सेल में फिट नहीं होता है।

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


6

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

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

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

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


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

1
अच्छी पोस्ट। एक और कारण जिसके बारे में आप सोच सकते हैं कि आप क्यों चाहते हैं कि टिप्पणी संपूर्ण फ़ाइल के बारे में कुछ मेटा-डेटा जोड़ना है। इस जानकारी के साथ केवल एक सेल के लिए एक संपूर्ण स्तंभ या पंक्ति जोड़ना यह थोड़ा अजीब लगता है।
बेन हर्षे

3

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

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

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


2
There is no standard which defines the contents of a CSV file असत्य।
Qix - मोनासा

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

3

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

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!

1
!! क्या आप असली नंगे पैर केन बॉब हैं?
ज्योफ्री हेल

2

अगर आपको कुछ चाहिए:

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

आपके CSV में निम्न पंक्तियाँ हो सकती हैं:

"#My comment, something else"
1,2

पहली पंक्ति में 'उद्धरण' पर पूरा ध्यान दें।

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.