[PYTHON] Dateiabgleich

Übereinstimmendes Skript für Datei A und Datei B. Extrahieren Sie nur mit Schlüsseln übereinstimmende Datensätze aus Datei B.

# -*- coding: utf-8 -*-

#Schlüsselübereinstimmung zwischen Datei A und Datei B.
#Annahme
#-Die Schlüssel von Datei A und Datei B sind in aufsteigender Reihenfolge sortiert.
#・ Die Datei hat eine feste Länge
#

#Übereinstimmender Dateiname, Name der Ausgabedatei
fileA = "a.txt"
fileB = "b.txt"
fileOut = "out.txt"

#Dateidatensatzgröße
recsizeA = 4
recsizeB = 8

#Schlüsselstartposition
keyposA = 0
keyposB = 0

#Schlüssellänge
keysize = 2


#-----------------------------------------------
#Starten Sie die Verarbeitung
#-----------------------------------------------
fpa = open(fileA, 'rb')
fpb = open(fileB, 'rb')
fpout = open(fileOut, 'wb')

reca = fpa.read(recsizeA)
recb = fpb.read(recsizeB)

#Wiederholen, bis eine der Dateien nicht mehr lesbar ist
while len(reca) == recsizeA and len(recb) == recsizeB :
    if reca[keyposA:keysize] == recb[keyposB:keysize] :
        fpout.write(recb)
        recb = fpb.read(recsizeB)
    elif  reca[keyposA:keysize] < recb[keyposB:keysize] :
        reca = fpa.read(recsizeA)
    elif  reca[keyposA:keysize] > recb[keyposB:keysize] :
        recb = fpb.read(recsizeB)

fpa.close()
fpb.close()
fpout.close()
        

Recommended Posts

Dateiabgleich
Eine Datei erstellen
Datei lesen
Dateivorgang
Skript-Python-Datei
Umbenennen der Syslog-Datei
Doppelte Dateientfernung
Python-Dateiverarbeitung
Leere Dateierkennung
[Linux] Dateisuche
Astropie: passt Datei
Passen Sie die Karaoke-Tasten an
Nginx-Konfigurationsdatei