आप अपनी स्ट्रिंग को पार्स करने के लिए shlex
मॉड्यूल का उपयोग कर सकते हैं।
डिफ़ॉल्ट रूप से, shlex.split
उद्धरण में नहीं संलग्न खाली स्थान के पात्रों को अपने स्ट्रिंग विभाजित होगा:
>>> shlex.split(teststring)
['48,', 'one, two,', '2011/11/03']
यह आपके स्ट्रिंग से पीछे चल अल्पविराम के निकाल देता है नहीं है, लेकिन यह है कि तुम क्या जरूरत के लिए करीब है।
>>> parser = shlex.shlex(teststring)
>>> parser.whitespace
' \t\r\n'
>>> parser.whitespace += ','
>>> list(parser)
['48', '"one, two"', '"2011/11/03"']
नोट:: हालांकि, अगर आप पार्सर अनुकूलित एक खाली स्थान के चरित्र के रूप में अल्पविराम विचार करने के लिए है, तो आप उत्पादन कि आप की आवश्यकता मिल जाएगा पार्सर वस्तु से टोकन प्राप्त करने के लिए पुनरावर्तक के रूप में प्रयोग किया जाता है एक। इसलिए, list(parser)
पार्सर ऑब्जेक्ट पर पुनरावृत्त होता है और स्ट्रिंग को विभाजित करता है जहां आपको आवश्यकता होती है।
वह लिंक समस्या को हल करने के लिए पर्याप्त नहीं है। बॉक्स के ठीक बाहर, एक सीएसवी रीडर ओपी की टेस्ट स्ट्रिंग को सही ढंग से पार्स नहीं करेगा। –