Сообщить об ошибке.

Функции split() модуля shlex в Python

Разобрать строку bash/sh на отдельные команды

Синтаксис:

import shlex

shlex.split(s, comments=False, posix=True)

Параметры:

  • s - команда bash/sh для разбора,
  • comments=False - отключает обработку комментариев,
  • posix=True - режим работы.

Возвращаемое значение:

  • список отдельных команд терминала.

Описание:

Функция shlex.split() модуля shlex разбивает строку s, используя синтаксис, подобный терминальной оболочке.

Если атрибут comments имеет значение False (по умолчанию), то синтаксический анализ комментариев в данной строке будет отключен, установив для атрибута comments экземпляра shlex пустую строку.

Эта функция по умолчанию работает в режиме POSIX.

Примеры использования:

Если нужно разбить команду терминала на последовательность аргументов для использования в subprocess.Popen(), особенно в сложных случаях, то функция shlex.split() может сделать это за вас:

>>> import shlex, subprocess, pprint
>>> cmd = '/bin/vikings -input eggs.txt -output "spam spam.txt" -cmd "echo \'$MONEY\'"'
>>> args = shlex.split(cmd)
>>> pprint.pprint(args, width='60')
#['/bin/vikings',
# '-input',
# 'eggs.txt',
# '-output',
# 'spam spam.txt',
# '-cmd',
# "echo '$MONEY'"]
>>> p = subprocess.Popen(args)