Python Glossary English

Python 3.3+shlexфункция

shlex.quote()

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

Экранирует строку для безопасной подстановки в команду оболочки Unix: "it's" → 'it'"'"'s'.

Синтаксис

shlex.quote(s)

Нужна, только когда команда всё-таки собирается строкой для shell=True; список аргументов без оболочки надёжнее и экранирования не требует. Экранирование рассчитано на POSIX-оболочки: в cmd.exe и PowerShell на Windows оно не защищает от инъекций. Пустая строка превращается в '' — иначе аргумент бы исчез.

Примеры

import shlex
name = 'x; rm -rf ~'
print('ls ' + shlex.quote(name))  # → ls 'x; rm -rf ~'
print(shlex.quote(''))  # → ''
print(shlex.quote('safe_name.txt'))  # → safe_name.txt — без кавычек, раз они не нужны

См. также

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