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Сообщить о неточности