【发布时间】:2019-07-12 21:57:57
【问题描述】:
我正在学习 python,我的第一个任务是将 Zimbra zmprov 格式化文件转换为 csv 和 ldif。
由于我不知道完成任务的 python 内置函数,所以我走了很长的路,遍历行和打印。
如果你们能告诉我如何正确地做,我将不胜感激。
这是输入的zmp_file,要转换成csv和ldif
ca user1@domain.com.br ''
ma user1@domain.com.br cn 'User One'
ma user1@domain.com.br cpf ''
ma user1@domain.com.br l 'Porto Alegre'
ca user2@domain.com.br ''
ma user2@domain.com.br cn 'User Two'
ma user2@domain.com.br cpf '0123456789'
ma user2@domain.com.br l ''
所需的 .csv 输出(字段的顺序并不重要)
mail,cn,cpf,l
user1@domain.com.br,"User One",,"Porto Alegre"
user2@domain.com.br,"User Two",0123456789,
以及所需的 .ldif 输出(字段的顺序并不重要)
dn: 'uid=user1@domain.com.br'
cn: 'User One'
l: 'Porto Alegre'
mail: 'user1@domain.com.br'
dn: 'uid=user2@domain.com.br'
cn: 'User Two'
cpf: '0123456789'
mail: 'user2@domain.com.br'
我能走多远:
with zmp_file as input_file
for line in input_file:
if line.startswith('ca'):
mail = line.split()[1]
print "dn: uid={0}".format(mail)
print "mail: {0}".format(mail)
elif line.startswith('ma'):
words = shlex.split(line)[-2:]
print "{0}: {1}".format(words[0], words[1])
else:
print
【问题讨论】:
-
你能分享
zmprov输入文件并显示预期的输出格式吗? -
所以基本上
zmp_file文件是一个文本?