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