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设置windows桌面壁纸的实现代码
Jan 28 Python
python list 合并连接字符串的方法
Mar 09 Python
python中Genarator函数用法分析
Apr 08 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
Dec 22 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
Jun 13 Python
python实现linux下抓包并存库功能
Jul 18 Python
Python查找文件中包含中文的行方法
Dec 19 Python
python实现弹跳小球
May 13 Python
Windows系统Python直接调用C++ DLL的方法
Aug 01 Python
Python线程协作threading.Condition实现过程解析
Mar 12 Python
django中url映射规则和服务端响应顺序的实现
Apr 02 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
Jan 24 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
分页显示Oracle数据库记录的类之二
2006/10/09 PHP
PHP实现文件上传下载实例
2016/10/18 PHP
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
javascript读写XML实现广告轮换(兼容IE、FF)
2013/08/09 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
node.js中的fs.fchown方法使用说明
2014/12/16 Javascript
JavaScript通过prototype给对象定义属性用法实例
2015/03/23 Javascript
js使用setTimeout实现定时炸弹的方法
2015/04/10 Javascript
jQuery+HTML5加入购物车代码分享
2020/10/29 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
解决Window10系统下Node安装报错的问题分析
2016/12/13 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
jQuery ajax调用webservice注意事项
2017/10/08 jQuery
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
从零开始搭建webpack+react开发环境的详细步骤
2018/05/18 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
[01:22:28]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第一场 1月18日
2021/03/11 DOTA
python脚本实现查找webshell的方法
2014/07/31 Python
分析用Python脚本关闭文件操作的机制
2015/06/28 Python
Python学习入门之区块链详解
2017/07/25 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
python使用threading获取线程函数返回值的实现方法
2017/11/15 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
一文详述 Python 中的 property 语法
2020/09/01 Python
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
英国领先的酒杯和水晶玻璃器皿制造商:Dartington Crystal
2019/06/23 全球购物
圣诞节活动策划方案
2014/06/09 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
老公婚前保证书
2015/02/28 职场文书
初中语文教学随笔
2015/08/15 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS