आप उद्धृत तार पार्स करने के लिए shlex.split
, काम का उपयोग कर सकते हैं:
>>> import shlex
>>> text = 'This is "a simple" test'
>>> shlex.split(text, posix=False)
['This', 'is', '"a simple"', 'test']
गैर POSIX मोड में ऐसा करने से विभाजित परिणाम से भीतरी उद्धरण को हटाने से बचाता है। posix
डिफ़ॉल्ट रूप से True
पर सेट है:
>>> shlex.split(text)
['This', 'is', 'a simple', 'test']
आप पाठ के इस प्रकार के कई पंक्तियों है या आप एक धारा से पढ़ रहे हैं, तो आप कुशलतापूर्वक (उत्पादन में उद्धरण को छोड़कर) विभाजित कर सकते हैं csv.reader
का उपयोग कर:
import io
import csv
s = io.StringIO(text.decode('utf8')) # in-memory streaming
f = csv.reader(s, delimiter=' ', quotechar='"')
print list(f)
# [['This', 'is', 'a simple', 'test']]
अजगर 3 पर, आप स्ट्रिंग यूनिकोड के रूप में सभी स्ट्रिंग्स पहले से ही यूनिकोड हैं डिकोड करने की जरूरत नहीं होगी।
स्रोत
2017-07-11 10:07:43