我正在尝试为我的kolab电子邮件服务器写出一些基本的python。对于primary_mail,我希望它是第一个姓氏初始名,例如jdoe。默认值是名字(点)姓氏。 john.doe@domain.com
我提出了以下建议:
primary_mail ='%(givenname)s'[0:1]%(surname)s@%(domain)s
我想基本上说jdoe@domain.com
givenname would be someone's full name. (i.e John)
surname would be someone's last name. (i.e Doe)
domain is the email domain. domain.com
当python进行封装时,会出现一些像这样的mumbo jumbo:
'john[0:1]'doe@domain.com
有人可以帮我解决这个问题吗?我很亲密。
编辑:
根据kolab文档,它看起来像是:
"{0}@{1}": "format('%(uid)s', '%(domain)s')"
这当然对我不起作用......
编辑2:
我在错误日志中收到以下内容:
imaps[1916]: ptload completely failed: unable to canonify identifier: 'john'[0:1]doe@domain.com
答案 0 :(得分:0)
字符串格式是迄今为止最简单,最易读和首选的方法:
first_name = 'John'
surname = 'Smith'
domain = 'company.com'
primary_mail = '{initial}{surname}@{domain}'.format(initial=first_name[0].lower(), surname=surname.lower(), domain=domain)
primary_mail现在等于'jsmith@company.com'。您可以在大括号中定义包含命名占位符的字符串,然后调用format方法以在运行时将这些占位符替换为适当的值。在这里,我们取first_name的第一个字符并将其转换为小写,也转换整个姓氏,并保持域名不变。
您可以在Python 2.7 docs了解有关字符串格式的更多信息。
答案 1 :(得分:0)
format
是一种更好的方法,但是阅读Kolab文档似乎只能给出格式字符串,并且他们在内部使用%
样式格式化程序,你无法改变的地方。从
the Kolab 'primary_mail' documentation
primary_mail = %(givenname)s.%(surname)s@%(domain)s
The equivalent of the following Python is then executed:
primary_mail = "%(givenname)s.%(surname)s@%(domain)s" % {
"givenname": "Maria",
"surname": "Moller",
"preferredlanguage": "en_US"
}
在这种情况下,我们需要格式化对话的修饰符。我们有%(givenname)s
,它确保givenname是一个字符串。我们还可以指定最小长度,然后是.
,然后是精度。这通常只用于数字,但我们也可以用它作为字符串。这是一个格式字符串,没有最小长度,但最大长度(精度)为1个字符:
"%(givenname).1s"
所以你可能想要一个像这样的字符串:
"%(givenname).1s%(surname)@%(domain)"