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发送邮件示例(支持中文邮件标题)
Feb 16 Python
使用Python编写Linux系统守护进程实例
Feb 03 Python
python中set常用操作汇总
Jun 30 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
python 实现得到当前时间偏移day天后的日期方法
Dec 31 Python
Python Flask框架模板操作实例分析
May 03 Python
在SQLite-Python中实现返回、查询中文字段的方法
Jul 17 Python
python实现按行分割文件
Jul 22 Python
深入解析神经网络从原理到实现
Jul 26 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
python 5个实用的技巧
Sep 27 Python
django使用多个数据库的方法实例
Mar 04 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 日期操作小记
2012/02/27 PHP
php实现文件下载实例分享
2014/06/02 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
根据出生日期自动取得星座的js代码
2010/07/20 Javascript
javascript变量作用域使用中常见错误总结
2013/03/26 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
2013/08/12 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
纯javascript模仿微信打飞机小游戏
2015/08/20 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
bootstrap导航条实现代码
2016/12/28 Javascript
node.js中fs.stat与fs.fstat的区别详解
2017/06/01 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
Mac中安装nvm的教程分享
2017/12/11 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
2018/05/22 jQuery
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
js实现固定区域内的不重叠随机圆
2019/10/24 Javascript
vue实现在v-html的html字符串中绑定事件
2019/10/28 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
win10系统下Anaconda3安装配置方法图文教程
2018/09/19 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
linux安装python修改默认python版本方法
2019/03/31 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
Django实现基于类的分页功能
2019/10/31 Python
Python遍历字典方式就实例详解
2019/12/28 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
如何卸载python插件
2020/07/08 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
英国领先品牌手动工具和电动工具供应商:Tooled Up
2018/11/24 全球购物
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
如何写股份合作协议书
2014/09/11 职场文书
伏羲庙导游词
2015/02/09 职场文书
介绍信怎么写
2015/05/05 职场文书
MySQL学习之基础操作总结
2022/03/19 MySQL