本文将会分析一个文件合并的程序,并指出在合并文件过程中需要注意的问题。
下面是需要合并的文件示例:
分析思路:
要将两个文件合并,首先要将文件读到内存中,成为列表。再将列表分割,按照类别将数据分开存储,即姓名:电话,邮箱。通过遍历列表1,依次与列表2比较,如果二者有重合的人,那么直接利用. join([])姓名电话邮箱合并到一行,保存到另外一个列表变量里面。二者不重合的人,说明只有列表1中才有,故将此人的邮箱信息用str(“-”)代替。
经过这次遍历之后,列表1中所有的人和列表2中与列表1中重复的人,都重新整合到了新的列表变量里面。接下来还需要把列表2中特有的人,添加到新的列表变量中。方法是遍历列表2,把与列表1不重合的人取出来保存。
最后要将新的列表变量中的数据写入到新的文件中,并关闭所有文件。
流程图如下:
代码如下:
”“” 创建于2017年8月4日12:59:36星期五 @author: 13323 ”“” #这个程序可以将两个或多个文件合并成一个文件。 def main (): #首先打开文件 data1=开放(“test_3.txt”、“rb”) data2=开放(“test_4.txt”、“rb”) #读取数据文件到列表中 data1.readline() #只读取一行,跳过第一行 data2.readline() #只读取一行,跳过第一行 file1=data1.readlines() #所有变量读入file1列表 file2=data2.readlines() #所有变量读入file2列表 #打印(file1) #定义特定的列表来存储变量 file1_name=[] file1_tel=[] file2_name=[] file2_email=[] # file3=[] # file1分割成两个部分 在file1线: # line.split元素=line.split () ();由“除号 file1_name.append (str(元素[0].decode (gbk))) file1_tel.append (str(元素[1].decode (gbk))) # file2分割成两个部分 在file2线: 元素=line.split () file2_name.append (str(元素[0].decode (gbk))) file2_email.append (str(元素[1].decode (gbk))) #捡起这个名字在file1 file2和组合的名字一样 file3=[] 因为我在范围(len (file1_name)): s=" 如果file1_name file2_name[我]: j=file2_name.index (file1_name[我]) s=' \ t . join ([file1_name[我],file1_tel[我],file2_email [j]]) s +=' \ n ' 其他: s=' \ t . join ([file1_name[我],file1_tel[我],str (“——”)]) s +=' \ n ' file3.append (s) #捡起这个名字在file1 file2不一样的名字 因为我在范围(len (file2_name)): s=" 如果file2_name[我]不是file1_name: s=' \ t . join ([file2_name[我],str (——), file2_email[我]]) s +=' \ n ' file3.append (s) #数据写入file3 data3=开放(“test_5.txt”、“w”) data3.writelines (file3) #关闭文件 data1.close () data2.close () data3.close () main () >之前<>强关键点:强>
编码与解码
列表合并与拆解以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
python实现两个文件合并功能