Python Glossary English

все Python 3shlexпонятие

shlex.shlex

разбор командной строки

Лексический анализатор в стиле оболочки: поток токенов с настраиваемыми кавычками, комментариями и знаками.

Синтаксис

lexer = shlex.shlex(instream=None, infile=None, posix=False, punctuation_chars=False)

По умолчанию posix=False — режим совместимости, в котором кавычки остаются внутри токена, а не снимаются, как у shlex.split(). Без whitespace_split=True строка режется ещё и по знакам препинания: 'a=b' даст три токена. punctuation_chars=True выделяет ;, &&, | в отдельные токены — так разбирают конвейеры.

Примеры

import shlex
print(list(shlex.shlex('a="b c"')))  # → ['a', '=', '"b c"']
lex = shlex.shlex('a="b c"', posix=True)
lex.whitespace_split = True
print(list(lex))  # → ['a=b c']
print(list(shlex.shlex('ls|wc -l && echo ok', punctuation_chars=True)))  # → ['ls', '|', 'wc', '-l', '&&', 'echo', 'ok']

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности