下面是实现两个文件进行合并处理:
# combInfor.py
def main():
#打开文件操作
ftele = open('telephone.txt','r')
femail = open('email.txt','r')
#将整个文件一次性读入列表中
lines1 = ftele.readlines()
lines2 = femail.readlines()
#创建四个临时列表
list1_name = []
list1_tele = []
list2_name = []
list2_email = []
#开始遍历telephone.txt产生的列表
for line in lines1:
elements = line.split()#每一行读取到的字符串用split()函数分割成列表
list1_name.append(elements[0])
list1_tele.append(elements[1])#将读取到的信息追加到列表中
#开始遍历email.txt文件中的内容
for line in lines2:
elements = line.split()#每一行读取到的字符串用split()函数分割成列表
list2_name.append(elements[0])
list2_email.append(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]) #找到姓名在列表二中的索引位置
#注意index()函数
s = list1_name[i]+'\t'+list1_tele[i]+'\t'+list2_email[j]
s += '\n'
else:
s = '\t'.join([list1_name[i],list1_tele[i],str('---------')])
s += '\n'
lines.append(s)
#处理列表1中不存在但是列表二中存在的成员
for i in range(len(list2_name)):
if list2_name[i] not in list1_name:
s = ''
s = '\t'.join([list2_name[i],str('---------'),list2_email[i]])
s += '\n'
lines.append(s)
#写入合并文件中:
file = open('AddressBook.txt','w')
file.writelines(lines)
#关闭所有文件
ftele.close()
femail.close()
file.close()
#输出提示语句
print('合并完成,请查看!')
if __name__ == "__main__":
main()
下面是各个文件合并前后的情况,也就是程序运行的效果: