2
Как сохранить кавычки вокруг «значения с пробелами» при использовании shlex.split()?Сохранять котировки при использовании shlex.split
s = "SOME_VAR=\"value with spaces\" VAR2=value2"
shlex.split(s)
['SOME_VAR=value with spaces', 'VAR2=value2']
Спасибо
Похоже shlex является актуальной парсер, так что вам придется бежать специальные символы. Например, это правильно анализирует: «SOME_VAR = \\\» значение \\ с \\ пробелами \\\ "VAR2 = значение2" '. Я не знаю точно, как вы могли бы это сделать и избежать этих символов, так как вам в значительной степени придется создать парсер и повторно реализовать shlex ... –
Каковы ваши аргументы в пользу сохранения котировок? Достаточно ли предположить, что если значение содержит пробелы, которые он когда-то первоначально цитировал? – joeb
Соль использует shlex.split для разделения параметров для вызовов на msiexec. https://github.com/saltstack/salt/blob/develop/salt/modules/win_pkg.py#L1132 Я пытаюсь предоставить пару ключ/значение для msiexec, где значение может содержать пробелы. Если кавычки удалены, msiexec обрабатывает все после первого пробела как параметр и терпит неудачу. – lubyou