2010-06-06 17 views
12

के साथ एक CSV प्रारूप है या नहीं, क्या कोई यह जांचने का एक प्रभावी तरीका प्रदान कर सकता है कि फ़ाइल में पाइथन का उपयोग करके CSV प्रारूप है या नहीं?जांचें कि फ़ाइल में पाइथन

+1

स्टैक ओवरफ्लो में आपका स्वागत है। आपका प्रश्न अधिक जानकारी का उपयोग कर सकता है। एक स्टार्टर के रूप में, क्या आप कृपया "सीएसवी प्रारूप" से क्या मतलब है परिभाषित कर सकते हैं? आपको इस प्रारूप को ध्यान से परिभाषित करने की आवश्यकता होगी। क्या इस प्रारूप में बचने वाले पात्र, टिप्पणी मार्कर, या उद्धरण वर्ण मौजूद हैं? यदि यह प्रश्न गृहकार्य है, तो कृपया "होमवर्क" नामक एक टैग जोड़ें ताकि प्रतिक्रिया आपको सही प्रकार का मार्गदर्शन दे सके। –

+1

मेरा मतलब सीएसवी फ़ाइल पर अल्पविराम से अलग मूल्य फ़ाइल अधिक जानकारी के लिए http://en.wikipedia.org/wiki/Comma-separated_values ​​देखें। – Joe

+1

यदि सीएसवी 'अल्पविराम से अलग मूल्य' का मतलब है, तो उस प्रारूप का कोई स्टैंडआउट नहीं है। – Max

उत्तर

0

पायथन के पास csv module है, इसलिए आप इसे विभिन्न बोलीभाषाओं के तहत पार्स करने का प्रयास कर सकते हैं।

-3

आपको सीएसवी फ़ाइल पर विचार करने के बारे में स्पष्ट रूप से सोचने की आवश्यकता है।

उदाहरण के लिए, अल्पविरामों के बीच किस तरह के पात्र हो सकते हैं। क्या यह केवल पाठ है? क्या यह यूनिकोड वर्ण भी हो सकता है? क्या प्रत्येक पंक्ति में अल्पविराम की समान संख्या होनी चाहिए?

एक CSV फ़ाइल की कोई सख्त परिभाषा नहीं है जिसे मैं जानता हूं। आम तौर पर यह एएससीआईआईआई पाठ को अल्पविराम से अलग करता है और प्रत्येक पंक्ति में समान संख्या में अल्पविराम होते हैं और आपके प्लेटफ़ॉर्म के लाइन टर्मिनेटर द्वारा समाप्त किया जाता है।

वैसे भी, एक बार जब आप उपरोक्त प्रश्नों का उत्तर देते हैं तो आप यह जानने के तरीके से थोड़ा आगे होंगे कि फ़ाइल को CSV फ़ाइल कब पता चलाना है।

22

आप निम्न की तरह कुछ कोशिश कर सकते हैं, लेकिन सिर्फ इसलिए कि आपको csv.Sniffer से बोलीभाषा मिलती है, वास्तव में आपके पास एक वैध CSV दस्तावेज़ होने की गारंटी के लिए पर्याप्त नहीं होगा।

csv_fileh = open(somefile, 'rb') 
try: 
    dialect = csv.Sniffer().sniff(csv_fileh.read(1024)) 
    # Perform various checks on the dialect (e.g., lineseparator, 
    # delimiter) to make sure it's sane 

    # Don't forget to reset the read position back to the start of 
    # the file before reading any entries. 
    csv_fileh.seek(0) 
except csv.Error: 
    # File appears not to be in CSV format; move along 
+0

* "... गारंटी के लिए पर्याप्त नहीं होगा ..." *: हाँ। बोलीभाषा प्रदान किए बिना, मैंने एक .ZIP को वैध सीएसवी के रूप में पाया, @ सेपरेटर के रूप में – alanjds

-3

इसे सीएसवी के रूप में पार्स करने का प्रयास करें और देखें कि आपको कोई त्रुटि है या नहीं।

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