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程序语言快速上手教程
Jul 18 Python
解决python 输出是省略号的问题
Apr 19 Python
用Python读取几十万行文本数据
Dec 24 Python
对python实现合并两个排序链表的方法详解
Jan 23 Python
Python Pexpect库的简单使用方法
Jan 29 Python
Python操作配置文件ini的三种方法讲解
Feb 22 Python
12个步骤教你理解Python装饰器
Jul 01 Python
python绘制直方图和密度图的实例
Jul 08 Python
opencv-python 提取sift特征并匹配的实例
Dec 09 Python
Python 面向对象之类class和对象基本用法示例
Feb 02 Python
Python2和Python3中@abstractmethod使用方法
Feb 04 Python
Python 用__new__方法实现单例的操作
Dec 11 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上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
基于jQuery的一个扩展form序列化到json对象
2010/12/09 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
javascript的函数作用域
2014/11/12 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
[01:03:36]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第二场 1月26日
2021/03/11 DOTA
Python库urllib与urllib2主要区别分析
2014/07/13 Python
Python中tell()方法的使用详解
2015/05/24 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
python实现微信自动回复功能
2018/04/11 Python
Python延时操作实现方法示例
2018/08/14 Python
Python模拟简单电梯调度算法示例
2018/08/20 Python
Python标准库itertools的使用方法
2020/01/17 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
小狗电器官方商城:中国高端吸尘器品牌
2017/03/29 全球购物
新闻编辑专业毕业自荐书范文
2014/02/05 职场文书
民间个人借款协议书
2014/09/30 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
党员年终个人总结
2015/02/14 职场文书
安全教育片观后感
2015/06/17 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python
vue中的可拖拽宽度div的实现示例
2022/04/08 Vue.js
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android
git中cherry-pick命令的使用教程
2022/06/25 Servers