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使用PyGreSQL操作PostgreSQL数据库教程
Jul 30 Python
Python制作简单的网页爬虫
Nov 22 Python
Python写的一个定时重跑获取数据库数据
Dec 28 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
Oct 16 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
Jul 04 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
Jun 10 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
Jul 04 Python
python 根据字典的键值进行排序的方法
Jul 24 Python
python调用接口的4种方式代码实例
Nov 19 Python
爬虫代理池Python3WebSpider源代码测试过程解析
Dec 20 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
May 15 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 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简单的伪原创程序,配合商城采集用的
2010/10/12 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
PHP使用DOM对XML解析处理操作示例
2019/07/04 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
js 利用className得到对象的实现代码
2011/11/15 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
2016/08/08 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
2016/09/27 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
[03:55]2014DOTA2国际邀请赛 Fnatic经理采访赢DK在情理之中
2014/07/10 DOTA
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python下使用Psyco模块优化运行速度
2015/04/05 Python
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
android面试问题与答案
2016/12/27 面试题
法院实习人员自我鉴定
2013/09/26 职场文书
二年级学生评语大全
2014/04/23 职场文书
励志演讲稿大全
2014/08/21 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
介绍信模板
2015/01/31 职场文书
《蜜蜂引路》教学反思
2016/02/22 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB