利用字符串和列表将两个通讯录文本合并为一个文本

来源:互联网 发布:摩比神奇 知乎 编辑:程序博客网 时间:2024/05/18 02:20
#利用字符串和列表将两个通讯录文本合并为一个文本
第一个文本信息为
第二个文本信息为:
def main():    ftele1 = open('C:/Users/Administrator/Desktop/TeleAddressBook.txt','rb')    ftele2 = open('C:/Users/Administrator/Desktop/EmailAddressBook.txt','rb')    ftele1.readline()  #跳过第一行    ftele2.readline()    line1 = ftele1.readlines()    line2 = ftele2.readlines()    list1_name = []    list1_tele = []    list2_name = []    list2_email = []    for line in line1:        #获取第一个文本中的姓名和电话信息        elements = line.split()        list1_name.append(str(elements[0]))  #将文本读出来的Bytes转换为str类型        list1_tele.append(str(elements[1]))    for line in line2:        #获得第二个文本的姓名和邮件信息        elements = line.split()        list2_name.append(str(elements[0]))        list2_email.append(str(elements[1]))    #开始处理    lines = []    lines.append("name\ttelephone\temail\n")    #按照索引方式遍历姓名列表1    for i in range(len(list1_name)):        if list1_name[i] in list2_name:            j = list2_name.index(list1_name[i])   #找到姓名列表1对应列表2中的姓名索引位置            s = '\t'.join([list1_name[i],list1_tele[i],list2_email[j]])            s += '\n'        else:            s ='\t'.join([list1_name[i],list1_tele[i],str('------------')])            s += '\n'        lines.append(s)    #处理姓名列表2中剩余的姓名    for i in range(len(list2_name)):        if list2_name[i] not in list1_name:            s= '\t'.join([list2_name[i],str('----------'),list2_email[i]])            s += '\n'            lines.append(s)    ftele3 = open('C:/Users/Administrator/Desktop/AddressBook.txt','w')    ftele3.writelines(lines)    ftele3.close()    ftele2.close()    ftele1.close()    print "The addressBooks are merged!"if __name__ == '__main__':     main()
合并之后的文本信息为:
阅读全文
0 0