Heim  >  Artikel  >  Backend-Entwicklung  >  Python implementiert die Zusammenführungsfunktion zweier Dateien

Python implementiert die Zusammenführungsfunktion zweier Dateien

不言
不言Original
2018-04-02 16:03:473005Durchsuche

In diesem Artikel wird hauptsächlich die Funktion zum Zusammenführen von zwei Dateien in Python ausführlich vorgestellt. Es handelt sich um ein einfaches Programm zum Zusammenführen von Dateien mit einem bestimmten Referenzwert.

Dieser Artikel wird eine Datei analysieren Führen Sie das Zusammenführungsprogramm durch und weisen Sie auf die Probleme hin, die beim Zusammenführen von Dateien beachtet werden müssen.

Das Folgende ist ein Beispiel für Dateien, die zusammengeführt werden müssen:


Analyseidee:

Um zwei Dateien zusammenzuführen, müssen die Dateien zunächst in den Speicher eingelesen werden und zu einer Liste werden. Teilen Sie dann die Liste auf und speichern Sie die Daten getrennt nach Kategorien, also Name, Telefonnummer und E-Mail-Adresse. Vergleichen Sie Liste 1 nacheinander mit Liste 2, und verwenden Sie .join([]), um die Namen, Telefonnummern und E-Mails direkt in einer Zeile zusammenzuführen und in einer anderen Listenvariablen zu speichern. Wenn sich die beiden nicht überschneiden, bedeutet dies, dass sie nur in Liste 1 enthalten sind. Daher werden die E-Mail-Informationen dieser Person durch str(‘––’) ersetzt.

Nach diesem Durchlauf wurden alle Personen in Liste 1 und die Personen in Liste 2, die Duplikate von Liste 1 sind, wieder in die neue Listenvariable integriert. Als Nächstes müssen Sie die eindeutigen Personen in Liste 2 zur neuen Listenvariablen hinzufügen. Die Methode besteht darin, Liste 2 zu durchlaufen, die Personen, die sich nicht mit Liste 1 überschneiden, herauszunehmen und zu speichern.

Schreiben Sie abschließend die Daten in der neuen Listenvariablen in die neue Datei und schließen Sie alle Dateien.

Das Flussdiagramm lautet wie folgt:

Der Code lautet wie folgt:


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


Wichtige Punkte:

Kodierung und Dekodierung
Zusammenführen und Zerlegen von Listen

Verwandte Empfehlungen:

Zwei Pythons implementieren die Umschaltfunktion

Python implementiert die Methode zur Verwaltung der Site


Das obige ist der detaillierte Inhalt vonPython implementiert die Zusammenführungsfunktion zweier Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn