Ich versuche, die ersten 300 Zeilen einer csv-Datei mit einer anderen zu vergleichen. Ich wiederhole jede Zeile der ersten Datei. Innerhalb dieser Iteration durchlaufe ich die zweite Datei und zähle jede Iteration, bis ich eine Übereinstimmung finde. Dann gebe ich den Zählwert (Zeile der übereinstimmenden Zeile in der zweiten Datei) in eine Textdatei aus.Vergleichen CSV-Dateien Rangfolge
Hier ist, was ich bisher:
import csv
with open('/Volumes/cachannel/CUTLER/subsampling/in-silico_IDC18_GFP18_names_only.csv', 'rb') as file1:
file1reader = csv.reader(file1)
with open('/Volumes/cachannel/CUTLER/subsampling/ICD18_GFP18_names_only.csv', 'rb') as file2:
file2reader = csv.reader(file2)
header1 = file1reader.next()
header2 = file2reader.next()
count = 0
with open("Rank_results.txt", 'a') as outfile:
while count < 300:
print(count)
for line1 in file1reader:
linenum = 1
for line2 in file2reader:
if line1 == line2:
print('match found')
outfile.write(str(linenum))
else:
linenum += 1
count += 1
Der Fehler, den ich jetzt bin immer ist, dass es nur das erste Spiel findet und keine anderen nicht findet - wenn ich weiß, gibt es mehr.
Gerade hier klar zu sein, ist ein Beispiel:
Datei 1:
Bob
Sue
Sally
Herald
File 2:
Sue
Bob
Herald
Sally
Ausgabedatei:
2 1 4 3
Sie immer 1 drucken gehen, da Sie nie die linenum Variable aktualisieren –
ich den Code aktualisiert ein Update auf die linenum Variable enthalten, wenn ein Match wird nicht gefunden, aber immer noch kein Glück ... – Labrat
Wenn ich Ihren Code ausführen, bekomme ich eine leere 'Rank_results.txt' Datei als Ergebnis und es wird nie' match found' ausgedruckt. – martineau