python实现两个文件合并功能


Posted in Python onApril 01, 2018

本文将会分析一个文件合并的程序,并指出在合并文件过程中需要注意的问题。

下面是需要合并的文件示例:

python实现两个文件合并功能

python实现两个文件合并功能

分析思路:

要将两个文件合并,首先要将文件读到内存中,成为列表。再将列表分割,按照类别将数据分开存储,即姓名、电话、邮箱。通过遍历列表1,依次与列表2比较,如果二者有重合的人,那么直接利用 .join([ ])姓名电话邮箱合并到一行,保存到另外一个列表变量里面。二者不重合的人,说明只有列表1中才有,故将此人的邮箱信息用str(‘—?')代替。

经过这次遍历之后,列表1中所有的人和列表2中与列表1中重复的人,都重新整合到了新的列表变量里面。接下来还需要把列表2中特有的人,添加到新的列表变量中。方法是遍历列表2,把与列表1不重合的人取出来保存。

最后要将新的列表变量中的数据写入到新的文件中,并关闭所有文件。

流程图如下:

python实现两个文件合并功能

代码如下:

"""
Created on Fri Aug 4 12:59:36 2017

@author: 13323
"""
# This program can combine two or more files into one file.
def main():
 #firstly open the files
 data1 = open("test_3.txt","rb")
 data2 = open("test_4.txt","rb")

 # read the data in file into list
 data1.readline() #only read one line, skip the first line
 data2.readline() #only read one line, skip the first line
 file1 = data1.readlines() #read all variable into list file1 
 file2 = data2.readlines() #read all variable into list file2
 #print(file1)

 #define particular list to store variable
 file1_name = []
 file1_tel = []
 file2_name = []
 file2_email = []
 #file3 = []

 #split file1 into two part
 for line in file1:
  element = line.split() #line.split(); devide by ' '
  file1_name.append(str(element[0].decode('gbk')))
  file1_tel.append(str(element[1].decode('gbk')))

 #split file2 into two part
 for line in file2:
  element = line.split()
  file2_name.append(str(element[0].decode('gbk')))
  file2_email.append(str(element[1].decode('gbk')))

 # pick up the name in the file1 same as the name in the file2 and combine 
 file3 = []
 for i in range(len(file1_name)):
  s = ''
  if file1_name[i] in file2_name:
   j = file2_name.index(file1_name[i])
   s = '\t'.join([file1_name[i],file1_tel[i],file2_email[j]])
   s += '\n'
  else:
   s = '\t'.join([file1_name[i],file1_tel[i],str("----")])
   s += '\n'
  file3.append(s)

 #pick up the name in the file1 doesn't same as the name in the file2 
 for i in range(len(file2_name)):
  s = ''
  if file2_name[i] not in file1_name:
   s = '\t'.join([file2_name[i],str('----'),file2_email[i]])
   s += '\n'
  file3.append(s)

 #write the data into file3 
 data3 = open("test_5.txt","w")
 data3.writelines(file3)

 #close the file
 data1.close()
 data2.close()
 data3.close()

main()

关键点:

编码与解码
列表合并与拆解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中enumerate函数用法实例分析
May 20 Python
Python pyinotify日志监控系统处理日志的方法
Mar 08 Python
对numpy中数组转置的求解以及向量内积计算方法
Oct 31 Python
python 去除二维数组/二维列表中的重复行方法
Jan 23 Python
Django 源码WSGI剖析过程详解
Aug 05 Python
pandas 空数据处理方法详解
Nov 02 Python
python pygame实现球球大作战
Nov 25 Python
在pytorch中对非叶节点的变量计算梯度实例
Jan 10 Python
tensorflow 限制显存大小的实现
Feb 03 Python
浅谈keras中的目标函数和优化函数MSE用法
Jun 10 Python
记录模型训练时loss值的变化情况
Jun 16 Python
python中random模块详解
Mar 01 Python
Python中一行和多行import模块问题
Apr 01 #Python
Python对List中的元素排序的方法
Apr 01 #Python
Python去除、替换字符串空格的处理方法
Apr 01 #Python
利用scrapy将爬到的数据保存到mysql(防止重复)
Mar 31 #Python
python 通过xml获取测试节点和属性的实例
Mar 31 #Python
Python Xml文件添加字节属性的方法
Mar 31 #Python
Python简单生成随机数的方法示例
Mar 31 #Python
You might like
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
2016/10/28 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
jquery ui dialog里调用datepicker的问题
2009/08/06 Javascript
JQuery Tips(4) 一些关于提高JQuery性能的Tips
2009/12/19 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
简单的js图片轮换代码(js图片轮播)
2014/05/06 Javascript
angularJS中$apply()方法详解
2015/01/07 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
浅谈手写node可读流之流动模式
2018/06/01 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
[02:05]2014DOTA2西雅图邀请赛 专访啸天mik夫妻档
2014/07/08 DOTA
[42:27]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第三局
2016/03/05 DOTA
python自动重试第三方包retrying模块的方法
2018/04/24 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
Python集合操作方法详解
2020/02/09 Python
python程序文件扩展名知识点详解
2020/02/27 Python
8种常用的Python工具
2020/08/05 Python
python集合的新增元素方法整理
2020/12/07 Python
python复合条件下的字典排序
2020/12/18 Python
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
历史系自荐信范文
2013/12/24 职场文书
合作意向书范本
2014/03/31 职场文书
合伙经营协议书范本
2014/09/13 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
敬老院活动感想
2015/08/07 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python
Python如何让字典保持有序排列
2022/04/29 Python