Я хотел бы проанализировать строку следующим образом:
-o 1 --long "Some long string"
в это:
["-o", "1", "--long", 'Some long string']
или аналогичный.
Это отличается от getopt или optparse, которые начинаются с синтаксического анализа sys.argv(как и результат, который у меня выше). Есть ли стандартный способ сделать это? В принципе, это "расщепление" при сохранении цитируемых строк вместе.
Моя лучшая функция:
import csv
def split_quote(string,quotechar='"'):
'''
>>> split_quote('--blah "Some argument" here')
['--blah', 'Some argument', 'here']
>>> split_quote("--blah 'Some argument' here", quotechar="'")
['--blah', 'Some argument', 'here']
'''
s = csv.StringIO(string)
C = csv.reader(s, delimiter=" ",quotechar=quotechar)
return list(C)[0]