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

yipeiwu_com5年前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 @propert装饰器使用方法原理解析

这篇文章主要介绍了python @propert装饰器使用方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 首先,@prop...

python 定义给定初值或长度的list方法

python 定义给定初值或长度的list方法

1. 给定初值v,和长度l,定义list s 或者: 2. 产生一个数值递增list 2.1 从0开始以1递增 2.2 在[a,b)区间上以1递增 2.3 在[a,b)区间上以c...

对PyQt5中的菜单栏和工具栏实例详解

对PyQt5中的菜单栏和工具栏实例详解

在这一部分,我们学习创建状态栏,菜单栏和工具栏。一个菜单是位于菜单栏的一组命令。一个工具栏有一些按钮,这些按钮在应用程序中拥有一些常用命令。状态栏显示状态信息,通常位于应用窗口下方。 Q...

浅析Python语言自带的数据结构有哪些

Python作为一种脚本语言,其要求强制缩进,使其易读、美观,它的数据类型可以实现自动转换,而不需要像C、Java那样给变量定义数据类型,使其编写非常方便简单,所以广受大家的欢迎。 现如...

pandas.DataFrame选取/排除特定行的方法

pandas.DataFrame选取特定行 使用Python进行数据分析时,经常要使用到的一个数据结构就是pandas的DataFrame,如果我们想要像Excel的筛选那样,只要其中的...