Home  >  Article  >  Backend Development  >  Python implements the function of merging two files

Python implements the function of merging two files

不言
不言Original
2018-04-02 16:03:473072browse

This article mainly introduces the function of merging two files in Python in detail. It is a simple file merging program that has certain reference value. Interested friends can refer to it.

This article will It will analyze a file merging program and point out the issues that need to be paid attention to during the file merging process.

The following is an example of the files that need to be merged:


## Analysis idea:


To merge two files, the file must first be read into the memory and become a list. Then split the list and store the data separately according to categories, that is, name, phone number, and email address. By traversing List 1, compare it with List 2 in turn. If there are overlapping people in the two, directly use .join([ ]) to merge the names, phone numbers and emails into one row and save them in another list variable. If the two do not overlap, it means that they are only in list 1, so the email information of this person is replaced with str (‘—–’).


After this traversal, all the people in List 1 and the duplicate people in List 2 and List 1 have been re-integrated into the new list variable. Next, you need to add the unique people in list 2 to the new list variable. The method is to traverse list 2 and take out the people who do not overlap with list 1 and save them.


Finally, write the data in the new list variable to the new file and close all files.


The flow chart is as follows:

The code is as follows:


"""
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()


Key points:

Encoding and decoding

List merging and dismantling

Related recommendations:

Two pythons implement switching function

Python method to implement management site


The above is the detailed content of Python implements the function of merging two files. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn