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

yipeiwu_com7年前Python基础

本文实例主要实现的是利用字典将两个通讯录文本合并为一个文本,具体代码如下:

def main():
  ftele1=open("d:\TeleAddressBook.txt","rb")
  ftele2=open("d:\EmailAddressBook.txt","rb")
  ftele1.readline()#跳过第一行
  ftele2.readline()
  lines1=ftele1.readlines()
  lines2=ftele2.readlines()
  dic1={}
  dic2={}
  for line in lines1:#获取第一个文本中的姓名和电话信息
    elements=line.split()
    #将文本中的读出来的bytes转换为str
    dic1[elements[0]]=str(elements[1].decode('gbk'))
  for line in lines2:
    elements=line.split()
    dic2[elements[0]]=str(elements[1].decode("gbk"))

  lines=[]
  lines.append("姓名\t  电话\t    邮箱\n")

  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)
  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)
  ftele3=open("d:\dizhibook.txt","w")
  ftele3.writelines(lines)
  ftele3.close()
  ftele2.close()
  ftele1.close()
  print("The dizhibook are merged!")
main()

演示结果:

总结

以上就是本文关于Python利用字典将两个通讯录文本合并为一个文本实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

python如何以表格形式打印输出的方法示例

python如何以表格形式打印输出的方法示例

好久不见,风水轮流转,我竟然写写写python了 近日有个小需求,要求收集统计一些信息上报,并直接在后台控制台打印,写入日志 为了美观,需要以表格形式展现数据,形如 虽说可以用 pre...

Python中tell()方法的使用详解

 tell()方法返回的文件内的文件读/写指针的当前位置。 语法 以下是tell()方法的语法: fileObject.tell() 参数  &nbs...

Python中的pack和unpack的使用

不同类型的语言支持不同的数据类型,比如 Go 有 int32、int64、uint32、uint64 等不同的数据类型,这些类型占用的字节大小不同,而同样的数据类型在其他语言中比如 Py...

Python 的AES加密与解密实现

高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代...

巧用Python装饰器 免去调用父类构造函数的麻烦

先看一段代码: 复制代码 代码如下: class T1(threading.Thread): def __init__(self, a, b, c): super(T1, self)._...