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实现矩阵乘法的方法
Jun 28 Python
怎样使用Python脚本日志功能
Aug 14 Python
Python对列表去重的多种方法(四种方法)
Dec 05 Python
Python开启线程,在函数中开线程的实例
Feb 22 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 Python
pytz格式化北京时间多出6分钟问题的解决方法
Jun 21 Python
python中的global关键字的使用方法
Aug 20 Python
Python3实现将一维数组按标准长度分隔为二维数组
Nov 29 Python
opencv3/C++ 平面对象识别&透视变换方式
Dec 11 Python
python中有函数重载吗
May 28 Python
浅谈matplotlib默认字体设置探索
Feb 03 Python
python numpy中setdiff1d的用法说明
Apr 22 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
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
2016/07/14 PHP
laravel学习教程之关联模型
2016/07/30 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
2019/04/27 PHP
javascript新手语法小结
2008/06/15 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
如何使用jQuery Draggable和Droppable实现拖拽功能
2013/07/05 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
javascript计算星座属相(十二生肖属相)示例代码
2014/01/09 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
Jquery和angularjs获取check框选中的值的方法汇总
2016/01/17 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
jQuery基于ID调用指定iframe页面内的方法
2016/07/06 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
自己封装的一个简单的倒计时功能实例
2016/11/23 Javascript
js 调用百度分享功能
2017/02/27 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
python技能之数据导出excel的实例代码
2017/08/11 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
python基于http下载视频或音频
2018/06/20 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
HTML5 UTF-8 中文乱码的解决方法
2013/11/18 HTML / CSS
经贸日语专业个人求职信范文
2013/12/28 职场文书
学生会主席竞聘书
2014/03/31 职场文书
代理协议书
2014/04/22 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
人事主管岗位职责
2015/02/04 职场文书
清洁工个人工作总结
2015/03/05 职场文书
同学聚会感言一句话
2015/07/30 职场文书