习题及答案(一):通讯录合并

版权声明: https://blog.csdn.net/zheng_weibin/article/details/79238589

#利用字典将两个通讯录文本合并为一个文本

ftele1=open('TeleAddressBook.txt','r')
ftele2=open('EmailAddressBook.txt','r')

ftele1.readline()#跳过第一行
ftele2.readline()
lines1 = ftele1.readlines()
lines2 = ftele2.readlines()

dic1 = {}   #字典方式保存
dic2 = {}


for line in lines1:#获取第一个本文中的姓名和电话信息
        elements = line.split()
        dic1[elements[0]] = elements[1]
         
for line in lines2:#获取第二个本文中的姓名和电话信息
        elements = line.split()
        dic2[elements[0]] = elements[1]

###开始处理###
lines = []
lines.append('姓名\t    电话   \t  邮箱\n')

for key in dic1:
    s= ''
    if key in dic2.keys():
            s = '\t'.join([str(key), dic1[key], dic2[key]])
            s += '\n'
    else:
            s = '\t'.join([str(key), dic1[key], str('   -----   ')])
            s += '\n'
    lines.append(s)
     
for key in dic2:
    s= ''
    if key not in dic1.keys():
            s = '\t'.join([str(key), str('   -----   '), dic2[key]])
            s += '\n'       
    lines.append(s)

ftele3 = open('AddressBook.txt', 'w')
ftele3.writelines(lines)
 
ftele3.close()
ftele1.close()
ftele2.close()
print("The addressBooks are merged!")


猜你喜欢

转载自blog.csdn.net/zheng_weibin/article/details/79238589