夜光序言:
用温柔的手段来处理人家肉体上的创伤,用温柔的态度来安慰人家精神 上的痛苦。
正文:
# 夜光:利用字典将两个通讯录文本合并为一个文本
def main():
ftele2=open('TeleAddressBook.txt','rb')
ftele1=open('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('AddressBook.txt', 'w')
ftele3.writelines(lines)
ftele3.close()
ftele1.close()
ftele2.close()
print("The addressBooks are merged!")
if __name__ == "__main__":
main()
夜光:字典实例二
同 前 , 有 电 话 簿 TeleAddressBook 和 邮 箱 地 址 簿EmailAddressBook两个文件,使用字典结构将其合并为一个完整的AddressBook文件
合并后的新地址簿为:
打开文件并读取文件
将文件的多行数据存储至lines1、lines2变量中
建立空字典dic1, dic2存储姓名、电话和邮箱:
获取TeleAddressBook中信息:
获取EmailAddressBook中信息:
文本合并处理
生成新的数据表头
按字典键的操作遍历姓名列表1
处理与表2重名的信息
处理其他信息
处理列表2中剩余的姓名
按字典键的操作遍历姓名:
处理列表2中剩余的姓名。
将新生成的合并数据写入新文件。
关闭文件。