使用python字典合并文本

本文尝试使用python字典来完成2个文本的合并工作,待合并的2个文本如下:

使用python字典合并文本_第1张图片

使用python字典合并文本_第2张图片


python3源代码如下:

#利用字典将两个通讯录文本合并为一个文本
#为了防止出现乱码,我们以'rb'方式打开
f1=open(r'C:\Users\Administrator\Desktop\TeleBook.txt','rb')
f2=open(r'C:\Users\Administrator\Desktop\EmailBook.txt','rb')
#跳过第一行
f1.readline()
f2.readline()
lines1=f1.readlines()
lines2=f2.readlines()
#字典方式保存
dict1={}
dict2={}
#获取第一个文本中的姓名和电话信息
for line in lines1:
    elements=line.split()
    dict1[elements[0]]=str(elements[1].decode('gbk'))
#获取第二个文本中的姓名和邮箱信息
for line in lines2:
    elements=line.split()
    dict2[elements[0]]=str(elements[1].decode('gbk'))
#开始处理
lines=[]
lines.append('姓名\t    电话    \t  邮箱\n')
for key in dict1:
    #s=''
    if key in dict2.keys():
        s='\t'.join([key.decode('gbk'),dict1[key],dict2[key]])
        s+='\n'
    else:
        s='\t'.join([str(key.decode('gbk')),dict1[key],str('   -----    ')])
        s+='\n'
    lines.append(s)
for key in dict2:
    #s=''
    if key not in dict1.keys():
        s='\t'.join([key.decode('gbk'),'    -----    ',dict2[key]])
        s+='\n'
        lines.append(s)
f3=open(r'C:\Users\Administrator\Desktop\AddressBook.txt','w')
f3.writelines(lines)


#关闭文件
f1.close()
f2.close()
f3.close()


print('The files have been merged!!')


最终的结果图如下:


至此,我们使用python字典完成了合并文本的工作。。。


你可能感兴趣的:(python,通讯录,字典,合并文件)