Maison  >  Article  >  développement back-end  >  Python implémente la fonction de fusion de deux fichiers

Python implémente la fonction de fusion de deux fichiers

不言
不言original
2018-04-02 16:03:473056parcourir

Cet article présente principalement en détail la fonction de fusion de deux fichiers en python. Il s'agit d'un simple programme de fusion de fichiers avec une certaine valeur de référence. Les amis intéressés peuvent s'y référer

Cet article analysera un fichier. programme de fusion et soulignez les problèmes auxquels il faut prêter attention pendant le processus de fusion de fichiers.

Ce qui suit est un exemple de fichiers qui doivent être fusionnés :


Idée d'analyse :

Pour fusionner deux fichiers, les fichiers doivent d'abord être lus dans la mémoire et devenir une liste. Divisez ensuite la liste et stockez les données séparément selon les catégories, c'est-à-dire le nom, le numéro de téléphone et l'adresse e-mail. En parcourant la liste 1, comparez-la tour à tour avec la liste 2. S'il y a des personnes qui se chevauchent dans les deux, utilisez directement .join([ ]) pour fusionner les noms, les numéros de téléphone et les e-mails sur une seule ligne et enregistrez-les dans une autre variable de liste. Si les deux ne se chevauchent pas, cela signifie qu'ils ne figurent que dans la liste 1, donc les informations de courrier électronique de cette personne sont remplacées par str (« –– »).

Après ce parcours, toutes les personnes de la liste 1 et les personnes de la liste 2 qui sont des doublons de la liste 1 ont été réintégrées dans la nouvelle variable de liste. Ensuite, vous devez ajouter les personnes uniques de la liste 2 à la nouvelle variable de liste. La méthode consiste à parcourir la liste 2, à supprimer les personnes qui ne chevauchent pas la liste 1 et à les enregistrer.

Enfin, écrivez les données de la nouvelle variable de liste dans le nouveau fichier et fermez tous les fichiers.

L'organigramme est le suivant :

Le code est le suivant :


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


Points clés :

Encodage et décodage
Fusion et démantèlement de listes

Recommandations associées :

Deux pythons implémentent la fonction de commutation

Python implémente la méthode de gestion du site


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn