Когда вы делаете
string % format_values
Тогда каждое %
в строке рассматривается как место форматирования. Python нашел %{
и был сбит с толку - он ожидал %d
для размещения целых чисел или %s
для размещения строк, или что-то еще, что ему известно. Но форматирование кода не использует %{
для любого формата - таким образом, ошибка. Если вы хотите написать %
, который не имеет значения для форматирования, вы должны экранировать его другим %
.
Поэтому есть два решения:
- либо измените все% ( кроме последнего
%s
) с %%
- или не используйте
string % format_values
, а просто добавьте веб-сайт к своей команде, поскольку, к счастью, он в конце
Правильный и неправильный код примеры:
website = "lukaszslusarczyk.pl"
cmd1 = "curl -s -w 'Response Time for %%{url_effective}\t%%{time_connect}\n' -o /dev/null https://%s" % website # OK
cmd2 = "curl -s -w 'Response Time for %{url_effective}\t%{time_connect}\n' -o /dev/null https://" + website # OK
cmd3 = "curl -s -w 'Response Time for %{url_effective}\t%{time_connect}\n' -o /dev/null https://%s" % website # wrong