Python Glossary English

Python 3.8+shlexфункция

shlex.join()

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

Склеивает список аргументов в строку команды оболочки, экранируя каждый через shlex.quote(). Обратна shlex.split().

Синтаксис

shlex.join(split_command)

В отличие от ' '.join(args), сохраняет аргументы с пробелами и кавычками: split(join(args)) вернёт исходный список. Удобно, чтобы напечатать или записать в лог команду, которую передаёте в subprocess списком, — её можно скопировать в терминал. Для cmd.exe на Windows результат не годится.

Примеры

import shlex
args = ['grep', '-r', 'hello world', "it's"]
print(shlex.join(args))  # → grep -r 'hello world' 'it'"'"'s'
print(shlex.split(shlex.join(args)) == args)  # → True
print(' '.join(args))  # → grep -r hello world it's — границы аргументов потеряны

См. также

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