Maison >développement back-end >Tutoriel Python >Python implémente la fonction de fusion de deux fichiers
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!