#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, вот оно что! спасибо, не стесняйтесь отвечать на вопрос, и я могу дать баллы.