通过字典合并文件电话簿

来源:互联网 发布:金鸡湖大数据产业联盟 编辑:程序博客网 时间:2024/06/03 22:28
代码如下:
def main():    ftele2=open('TeleAddressBook.txt','rb')    ftele1=open('EmailAddressBook.txt','rb')        ftele1.readline()#跳过文件1第一行    ftele2.readline()#跳过文件2第一行    lines1=ftele1.readlines();#读取文件    lines2=ftele2.readlines();    #创建字典    dic1={}    dic2={}    #将信息读入字典    for line in lines1:        elements=line.split()        dic1[elements[0]]=str(elements[1].decode('gbk'))    for line in lines2:<span style="white-space:pre"></span>elements=line.split()        dic2[elements[0]]=str(elements[1].decode('gbk'))    #创建新列表    lines=[]    #加入表头    lines.append('姓名\t  电话\t 邮箱\n')    #遍历字典一,将二中与一种共有的姓名合并,这里element[1]为姓名    for key in dic1:        s=''        if key in dic2.keys():            s='\t'.join([str(key.decode('gbk')),dic1[key],dic2[key]])            s+='\n'        else:            s='\t'.join([str(key.decode('gbk')),dic1[key],str('------')])            s+='\n'        lines.append(s)#将合并的信息加入lines末尾,每次循环执行一次    #遍历字典二,将二中与一不重合的姓名放入lines    for key in dic2:        s=''        if key not in dic1.keys():           s='\t'.join([str(key.decode('gbk')),str("-----"),dic2[key]])           s+='\n'        lines.append(s)    #打开或创建文件3为写模式    ftele3=open("AddressBook.txt",'w')    #写入lines3    ftele3.writelines(lines)    #关闭文件    ftele3.close()    ftele1.close()    ftele2.close()    #执行完毕    print("执行完毕")if __name__=="__main__":    main()

EmailAddress.txt


姓名邮箱王颐笳57320009@qq.com李斯12211212@qq.com王五949495968@qq.com桑迪wqweqe@163.com

TeleAdress.txt

姓名电话号码王颐笳13691177890张三13529293939李斯15811589981桑迪13010026896

合并后的Address.txt

姓名  电话 邮箱王颐笳57320009@qq.com13691177890李斯12211212@qq.com15811589981王五949495968@qq.com------桑迪wqweqe@163.com13010026896张三-----13529293939


0 0
原创粉丝点击