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

yipeiwu_com6年前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重新加载模块的实现方法

importlib 模块的作用 模块,是一个一个单独的py文件 包,里面包含多个模块(py文件) 动态导入模块,这样就不用写那么多的import代码, 典型的例子: 自动同步服务,每个网...

python3 requests中使用ip代理池随机生成ip的实例

啥也不说了,直接上代码吧! # encoding:utf-8 import requests # 导入requests模块用于访问测试自己的ip import random pro...

使用Python的toolz库开始函数式编程的方法

在这个由两部分组成的系列文章的第二部分中,我们将继续探索如何将函数式编程方法中的好想法引入到 Python中,以实现两全其美。 在上一篇文章中,我们介绍了不可变数据结构 。 这些数据结构...

Python过滤函数filter()使用自定义函数过滤序列实例

filter函数: filter()函数可以对序列做过滤处理,就是说可以使用一个自定的函数过滤一个序列,把序列的每一项传到自定义的过滤函数里处理,并返回结果做过滤。最终一次性返回过滤后的...

Python 使用 Pillow 模块给图片添加文字水印的方法

Python 使用 Pillow 模块给图片添加文字水印的方法

像微博一类的平台上传图片时,平台都会添加一个水印,宣誓着对图片的所有权,我们自己的博客平台也可以给自己的图片添加上水印。 还是用 Pillow 模块来实现 先来看一个简单的例子 &g...