Использование литерала «%» в переменной

#python #python-2.7 #escaping #character

#питон #python-2.7 #спасаясь #характер

Вопрос:

Я пытаюсь использовать следующее утверждение:

 sssd_conf =   'enumerate = truen'   'ldap_default_bind_dn = %(machines_ldap_dn)sn'   'ldap_default_authtok_type = passwordn'   'ldap_default_authtok = %(ldap_password)sn'   'use_fully_qualified_names = falsen'   'override_homedir = /home/%d/%un'   % {  'ldap_password': self.ldap_password,  'machines_ldap_dn': get_machines_ldap_dn(ldap_master, master_username, master_pw),  'master_ip': master_ip  }  

При запуске кода с этой переменной я получаю TypeError: not enough arguments for format string .

Как вы можете видеть, мне нужно использовать литерал % in 'override_homedir = /home/%d/%un' , но python интерпретирует %d и %u как переменные, которые будут размещены в этих местах. Как я могу избежать % этого в своем заявлении?

Я пытался 'override_homedir = /home/%d/%un' , но это не сработало.

Кстати, это код python2.7. Я унаследовал его и не хочу переносить его на 3 прямо сейчас.

Комментарии:

1. Вы пробовали @'override_homedir = /home/%d/%un'

2. %% станет просто %

3. @JoranBeasley, вот оно что! спасибо, не стесняйтесь отвечать на вопрос, и я могу дать баллы.