当前位置:首页 > CN2资讯 > 正文内容

python3合并两个文件形成通讯录python3合并两个列表

3天前CN2资讯

学习别人的代码,学习python语法

[root@vps student]# cat TeleAddressBook.txt 

姓名 电话

李四 13567428765

张三 18878972314

王五 18273719921

陈六 19903210032

[root@vps student]# cat EmailAddressBook.txt 

姓名 邮箱

张三 12345678@

李四 abcdefg@

王五 [email protected]

hello 1111111@

[root@vps student]# cat AddressBook.txt 

姓名 电话 邮箱 

李四13567428765abcdefg@

张三1887897231412345678@

王五[email protected]

陈六19903210032------------

hello------------1111111@

#!/usr/bin/env python3 #-*- coding:utf-8 -*- def main(): ftele1 = open("TeleAddressBook.txt",'r') ftele2 = open("EmailAddressBook.txt",'r') ftele1.readline() ftele2.readline() lines1 = ftele1.readlines() lines2 = ftele2.readlines() ''' #读取文件 >>> ftele1 = open("TeleAddressBook.txt",'r') #去掉文本标题行,也就是跳过第一行 >>> ftele1.readline() '姓名 电话\n' #readlines循环读取每一行,构成一个列表 #此处切记:如果文本里面有空行,lines1列表中就会有'\n' .后面列表append的时候就会报错 >>> lines1 = ftele1.readlines() >>> lines1 ['李四 13567428765\n', '张三 18878972314\n', '王五 18273719921\n', '陈六 19903210032\n'] >>>  >>> lines1[0] '李四 13567428765\n' #通过对字符串切片形成列表,取值 >>> lines1[0].split() ['李四', '13567428765'] >>> elements = lines1[0].split() >>> elements[0] '李四' ''' list1_name = [] list1_tele = [] list2_name = [] list2_email = [] #获取第一个文本中的姓名和电话信息 for line in lines1: elements = line.split() #此处列表添加有个隐患:文本文件中一定不能有空行,负责append会报错 #IndexError: list index out of range list1_name.append(str(elements[0])) list1_tele.append(str(elements[1])) for line in lines2: elements = line.split() list2_name.append(str(elements[0])) list2_email.append(str(elements[1])) lines = [] lines.append('姓名\t 电话\t 邮箱\t \n') #遍历列表匹配一样姓名的用户,构造字符串 for i in range (len(list1_name)): s = '' if list1_name[i] in list2_name: j = list2_name.index(list1_name[i]) 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)): s = '' 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('AddressBook.txt','w') ftele3.writelines(lines) ftele3.close() ftele1.close() ftele2.close() print("game over") if __name__ == '__main__': main()


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/19332.html

    分享给朋友:

    “python3合并两个文件形成通讯录python3合并两个列表” 的相关文章

    Windows SSH Client安装与配置指南

    在Windows 10版本1809及以后的版本中,微软引入了OpenSSH客户端,这让很多用户的远程管理变得更为便捷。作为一个IT爱好者,我发现这个特性非常有用,它让我能够轻松地通过SSH协议安全地连接和管理远程服务器。接下来,我将分享一些Windows SSH客户端的安装和配置过程,方便大家快速上...

    BBR对国内网站的实际作用与应用效果分析

    BBR(Bottleneck Bandwidth and Round-trip propagation time)算法是由Google推出的一种TCP拥塞控制算法。它的设计初衷是为了优化网络连接的传输速率和稳定性,尤其是在面临高延迟和波动网络条件时表现优异。可能的很多朋友会问,BBR到底是个什么东西...

    IEPL:企业国际以太网专线的优势与申请指南

    什么是IEPL 当我第一次接触IEPL(International Ethernet Private Line)时,我意识到它是一种为企业提供国际级别的网络连接服务,特别适合那些需要在不同国家和地区之间高效、安全传输数据的公司。这项服务一般由电信运营商提供,旨在帮助企业实现及时的信息交流和数据传输。...

    使用Win10一键安装脚本轻松安装SQLite数据库

    一键安装脚本的定义与作用 首先,Win10一键安装脚本是一个自动化脚本,用于在Windows 10操作系统中快速部署和安装程序。想象一下,平时我需要为新安装的系统配置各种软件和工具,单单是手动下载和安装每个程序就已经让我感到疲惫。通过一键安装脚本,我只需要运行一个脚本,就能完成一系列的安装任务。这种...

    香港VPS:灵活高效的网站托管解决方案

    在互联网技术不断发展的今天,VPS(虚拟专用服务器)逐渐成为网站建设和在线应用的热门选择。简单来说,VPS是一种虚拟化的服务器环境,它通过将物理服务器划分成多个独立的虚拟服务器,为用户提供更高的灵活性与控制权。这意味着,用户可以拥有一台独立的服务器环境,但成本却比购买一台专属服务器要低得多。 VPS...

    了解美国原生IP:稳定、高效的网络解决方案

    什么是原生IP? 在网络世界中,IP(互联网协议)是让设备能够在互联网上彼此识别和通信的唯一标识。原生IP则是指直接从网络服务提供商(ISP)获得的IP地址,这种地址具有很高的可信度和稳定性。想象一下,当你管理多个在线账户或进行数据抓取时,使用原生IP能够给你带来更多的便利,因为它们不容易受到追踪或...