zoukankan      html  css  js  c++  java
  • python 将两个txt文件内容合并

    分析: 先分别将两个文件中的内容读入列表中,再将列表分割 把不同属性的数据放到单独的列表中 分开存储  name tel  email 

    然后遍历列表查找重合的姓名. 利用字符串方法join() 将 三个属性合并,然后保存在临时列表

    最后将新的列表变量写入新文件中 

     1 file1 = open("name,tel.txt", "rb")
     2 file2 = open("name,email.txt", "rb")
     3 
     4 file_list1 = file1.readlines()  # 将所有变量读入列表file_list1
     5 file_list2 = file2.readlines()  # 将所有变量读入列表file_list2
     6 # print(type(file1))
     7 
     8 # 定义各属性数据存储列表
     9 file_list1_name = []
    10 file_list1_tel = []
    11 file_list2_name = []
    12 file_list2_email = []
    13 
    14 
    15 # 遍历file_list1 列表 将得到的信息进行下列操作
    16 for message in file_list1:
    17 
    18     temp_list = message.split()
    19     # 将txt文件中的第一行 也就是file_list1 列表的第一项 用split方法操作 以空格为分隔符 分成两部分继续放到temp_list列表里
    20 
    21     file_list1_name.append(str(temp_list[0].decode('gbk')))   # 包含中文 选gbk
    22     file_list1_tel.append(str(temp_list[1].decode('gbk')))
    23 
    24 # 操作与file_list1列表完全相同
    25 for message in file_list2:
    26     temp_list = message.split()
    27 
    28     file_list2_name.append(str(temp_list[0].decode('gbk')))
    29     file_list2_email.append(str(temp_list[1].decode('gbk')))
    30 
    31 
    32 # print(len(file_list1_name))
    33 
    34 # 选择与file_list2中的名称相同的file_list1中的名称并合并
    35 file_list3 = []
    36 for i in range(len(file_list1_name)):
    37     s = ''
    38     if file_list1_name[i] in file_list2_name:
    39         j = file_list2_name.index(file_list1_name[i]) #列表index方法 查找括号内对象 返回值为索引位置
    40 
    41         s = '	'.join([file_list1_name[i], file_list1_tel[i], file_list2_email[j]])
    42         # 字符串join方法连接三个属性,之间以(	 制表位)隔开
    43 
    44         s += '
    '
    45     else:
    46         s = '	'.join([file_list1_name[i], file_list1_tel[i], str("--------------")])
    47         s += '
    '
    48     file_list3.append(s)
    49 
    50 # 选择file_list1中的名称与file_list2中的名称不相同的
    51 for i in range(len(file_list2_name)):
    52     s = ''
    53     if file_list2_name[i] not in file_list1_name:
    54         s = '	'.join([file_list2_name[i], str('--------------'), file_list2_email[i]])
    55         s += '
    '
    56     file_list3.append(s)
    57 
    58 
    59 # 将数据写入file3
    60 file3 = open("三属性合并.txt", "w")
    61 file3.writelines(file_list3)
    62 
    63 # 关闭文件
    64 file1.close()
    65 file2.close()
    66 file3.close()

    操作之后结果为:

  • 相关阅读:
    原创 记录一次线上Mysql慢查询问题排查过程
    原创 |我是如何解决POI解析Excel出现的OOM问题的?
    FastJson序列化时候出现了$ref?还不赶紧学习下
    fastjson自定义序列化竟然有这么多姿势?
    SpringBoot2.0整合WebSocket,实现后端数据实时推送!
    SpringMVC+Mybatis 如何配置多个数据源并切换?
    异常: java.security.InvalidKeyException: Illegal key size
    一分钟带你了解下MyBatis的动态SQL!
    一分钟带你了解下Spring Security!
    历时七天,史上最强MySQL优化总结,从此优化So Easy!
  • 原文地址:https://www.cnblogs.com/Handsome-Lan/p/10901776.html
Copyright © 2011-2022 走看看